如何 return 来自 OpenOffice Basic 函数的数组?

How do I return an array from an OpenOffice Basic function?

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

一样使用数组函数

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

Function Test()
    Dim Test(3) As Variant
    Test(1) = 1
    Test(2) = 2
    Test(3) = 3
End Function

当我用 =Test() 填充一个单元格并按 Ctrl+Shift+Enter 时,我只得到一个带有 3 的单元格。 12 在哪里?我做错了什么?

我是 运行 OpenOffice 4.1.1

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

像这样:

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

或者,如果您希望它更短,您可以使用内置的 Array 函数,其中 return 是一个包含数组的 Variant

像这样:

Function Test2() as Variant
    Test2 = Array(1,2,3)
End Function

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 好像差不多全了。