如何使用LibreOffice Basic函数获取单元格的行和列号

时间:2020-08-28 16:45:37

标签: libreoffice-calc libreoffice-basic

我想编写一个Libreoffice-Basic函数,该函数考虑了放置该函数的单元格的行和列。我想如果可以定义一个函数,就可以解决我的问题:

Function MyRowFun()
    MyRowFun = ?????
End Function

复制内置函数ROW()。换句话说,一旦我在任何给定的单元格中键入"=MyRowFun()",该单元格将显示与键入"=ROW()"相同的结果。

能够获得相应的工作表名称也很不错。

非常感谢您的帮助,例如在线手册的指针。


PS:在花费大量时间进行搜索之后,我发现了很多地方来说明如何使用ThisComponent.CurrentSelection.AbsoluteName来识别所选内容下的单元格,但是我很关心放置公式的单元格< / strong>,而不是当前选择的单元格。

2 个答案:

答案 0 :(得分:1)

对于遇到此问题的其他人,@ JohnSUN在第一条评论中给出了解决方案:

如果您知道不带参数的SHEET(),ROW()和COLUMN()可以返回工作表-行-列号,那么只需在调用UDF时将它们作为参数传递即可。

发布者希望获得其他类型的解决方案,但没有其他办法。

答案 1 :(得分:0)

No SHEET(), ROW(), COLUMN()

Use Excel VBA Range. Just referring to itself. And without quotes.

C5: =UDF(Arg1;Agr2;C5)
________________________

Option VBASupport 1

Function UDF(Arg1, Arg2, Optional Caller)

    If Not IsMissing(Caller) Then

        sCallerName = Caller.CellRange.AbsoluteName

        Print sCallerName

    End If

End Function