如何从 OpenOffice Basic 函数返回数组?

qua*_*ant 1 arrays basic openoffice.org

我正在阅读有关数组的 OpenOffice文档,它似乎Calc能够像Excel.

为了测试这一点,我创建了一个应该返回数组的简单函数{1, 2, 3}

Function Test()
    Dim Test(3) As Variant
    Test(1) = 1
    Test(2) = 2
    Test(3) = 3
End Function
Run Code Online (Sandbox Code Playgroud)

当我填充一个单元格=Test()并按下时,Ctrl+Shift+Enter我只会得到一个单元格31和在哪里2?我究竟做错了什么?

我在跑OpenOffice 4.1.1

Axe*_*ter 6

函数返回类型的标注必须在语句内完成Function。如果函数应返回一个数组,则其尺寸必须为Variant。starbasic 无法直接将函数尺寸标注为数组类型。数组本身可以在函数体内单独创建,然后作为返回值分配给函数。

就像这样:

Function Test() as Variant
    Dim arr_Test(1 to 3) As Integer
    arr_Test(1) = 1
    arr_Test(2) = 2
    arr_Test(3) = 3
    Test = arr_Test
End Function
Run Code Online (Sandbox Code Playgroud)

Array或者,如果您希望它更短,您可以使用返回Variant包含数组的内置函数。

就像这样:

Function Test2() as Variant
    Test2 = Array(1,2,3)
End Function
Run Code Online (Sandbox Code Playgroud)

openoffice-/libreoffice-/-BASIC 编程文档:

https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide

https://wiki.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide -> https://wiki.openoffice.org/wiki/Documentation/DevGuide/Basic/OpenOffice.org_Basic

但两者都没有完全参考 BASIC 基础知识;-) 例如所有内置函数的参考。

https://help.libreoffice.org/Basic/Basic_Help -> https://help.libreoffice.org/Basic/Run-Time_Functions 似乎几乎完全。