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

时间:2015-03-22 04:11:27

标签: arrays openoffice.org basic

我正在阅读OpenOffice regarding arrays上的文档,似乎Calc能够像Excel那样使用数组函数。

为了测试这个,我创建了一个应该返回数组{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

1 个答案:

答案 0 :(得分:3)

函数返回类型的标注必须在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

或者如果你想缩短它,可以使用内置的Array函数返回包含数组的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 似乎几乎完全。