如何将单元格而不是单元格的值传递给LibreOffice函数?

时间:2014-03-04 14:53:15

标签: excel excel-vba libreoffice libreoffice-calc vba

我希望用户能够选择单元格,然后让我的功能对这些单元格进行操作。

我该怎么做? “ByRef”和“as Object”似乎做对了,但Excel / {Libre,Open} Office拒绝函数调用,因为用户的输入不是对象。

有没有办法找出为要运行的函数选择了哪些单元格?

即使我必须做一些事情,比如查找调用单元格的地址,然后向后工作以找到键入该单元格的单元格名称,这可能有效。我对任何允许我的用户像普通函数一样编写此函数的解决方案持开放态度,并且该函数能够修改所选单元格。这就是我在说的:

Function SIMVOL( rF, ByRef mX, mY, cR, cS ) ' or Function SIMVOL(...mX as Object...)
    mX.value() = 10
    SIMVOL = mX.value() * mY
End Function

1 个答案:

答案 0 :(得分:0)

这是一个改编自Andrew Pitonyak's OpenOffice Macro document的例子。它应该让你朝着正确的方向。

Sub DivideSelectionByTen()
  REM Divide the current selection by 10
  Dim oData()
  Dim oRow()
  Dim i As Integer
  Dim j As Integer

  Dim oRange As object
  Dim dDivisor As Double

  oRange = ThisComponent.getCurrentController().getSelection()

  dDivisor = 10

  oData() = oRange.getDataArray()
  For i = LBound(oData()) To UBound(oData())
    oRow() = oData(i)
    For j = LBound(oRow()) To UBound(oRow())
      oRow(j) = oRow(j) / dDivisor
    Next
  Next
  oRange.setDataArray(oData())
End Sub