lotusscript - 如何将 Lotus 范围值放入数组
问题描述
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 范围值放入数组?
解决方案
在帮助文件中找到了这个:Range.GetCellData
方法。
获取范围内的数据,作为一组指向单个单元格内容的指针引用。此方法分配内存用于复制范围的内容,设置内存中的值,并返回可由外部 C 程序使用的数组指针。
句法
arraypointer = range.GetCellData(celldatatype)
参数celldatatype
变体(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。
用法
此方法在内部为返回的数组分配内存,调用者必须释放该内存。
推荐阅读
- discord.js - 如何发送公会老板的名字?
- payara - Payara 不再支持 RMI。正确的?
- c++ - 如何使用 swig/cgo 调试“退出状态 3221225477”?
- angular - Spring boot websockets 通过 RxJs Angular Websockets 发送数据
- c - 如何创建单链表数组
- angular - 将 CUSTOM 数据:patentTempId,TempId 添加到 Angular Tree 节点材料
- sql - 使用 M 代码从 SQL 获取数据存在凭证错误
- google-apps-script - 使用一个 Google 帐户开发时,Workspace 插件未显示在 Google 表格中(对于其他帐户显示非常好)
- c# - 从 void 方法检查 IsCompleted,无法返回
- python - TensorFlow 在其较新版本中如何将其内部列表视为张量是否有任何变化?