如何在 libreOffice Calc 宏中添加 2 列的单元格元素?

问题描述

我有 2 列表示列 G 和列 H。每个都有不同的数值,直到 1449 行。现在,我想在每一行添加相应的单元格元素以获得一个新列。是否有任何函数可以执行此操作,因为简单的 +.DataArray() 函数中不起作用。

Sub updateSTOCK

  Dim my_range,my_range2

  my_range=ThisComponent.Sheets(3).getCellRangebyName("H5:H1449")
  my_range2=ThisComponent.Sheets(3).getCellRangebyName("G5:G1449")

  my_range.Data=my_range.Data+my_range2.Data    ***----> This line gives error***

End Sub

解决方法

在您的代码中,您必须对每一行执行加法;不支持对范围值进行分组操作

Sub updateSTOCK()
Dim oSheets As Variant
Dim oSheet3 As Variant
Dim oCellRangeByName As Variant
Dim oDataArray As Variant
Dim i As Long
    oSheets = ThisComponent.getSheets()
    oSheet3 = oSheets.getByIndex(3)
    oCellRangeByName = oSheet3.getCellRangeByName("H5:G1449")
    oDataArray = oCellRangeByName.getDataArray()
    For i = LBound(oDataArray) To UBound(oDataArray)
        oDataArray(i)(1) = oDataArray(i)(0) + oDataArray(i)(1)
    Next i
    oCellRangeByName.setDataArray(oDataArray)
End Sub