如何将Lotus Range值放入数组

时间:2018-07-02 17:18:24

标签: lotusscript

Lotus 123中是否有一种快速方法可以将范围内的所有单元格值都放入数组。我正在寻找类似于Excel VBA的东西,它的速度非常快。

Dim arrValues() As Variant
arrValues = rg.Value

生成的数组也可以被操纵并放回表中;就我而言,我想将其放入Excel。基本上取代复制和粘贴。在内存中的数组上进行操作要比一次处理一个单元快得多。

我知道如何通过一次读取一个单元格来做到这一点,但是我正在寻找一种类似于Excel的更快方法。

'Lotus Script
Dim r As Range
Set r = CurrentDocument.Ranges("A:A1..A:D4")
Dim x, y As Integer
For x = 0 To 3
    For y = 0 To 3
        Print (r.Cell(x, y).cellvalue)
    Next
Next

请注意,我不是特别用VBA进行标记,因为只有知道Lotus Script的人才能回答。这与VBA无关。

如何将Lotus 123范围值放入数组中?

1 个答案:

答案 0 :(得分:0)

在帮助文件:Range.GetCellData方法中发现了这一点。

获取一个范围内的数据,该数据被引用为指向单个单元格内容的一组指针。此方法分配内存以复制范围的内容,在内存中设置值,并返回可由外部C程序使用的数组指针。

语法

arraypointer = range.GetCellData(celldatatype)

参数单元格数据类型

Variant(CellDataType枚举)。返回的单元格数据的格式。下表列出了此参数的允许值。

值和说明

  • $ CellValue 返回指向字符串数组的指针。字符串包含单元格求值的格式化值。空白单元格将导致NULL指针。
  • $ FormulaContents 返回指向字符串数组的指针。这类似于 $ CellValue(字符串除外)是公式单元格的内容(例如,“ + A1 + @ SUM(B1)”)。所有其他类型的单元格都将导致NULL指针。
  • $ Double 返回指向双精度数组的指针。空白单元格和标签将返回零。 NA和ERR被编码为无效数字。

返回值:

长。指向指针数组的指针,范围内的每个单元格一个。数组按行/列/表排序。例如,代表范围[A:A1..B:B2]的数组将以以下顺序给出:A:A1,A:A2,A:B1,A:B2,B:A1,B:A2,B: B1,B:B2。

用法

此方法在内部为返回的数组分配内存,并且调用方必须释放该内存。