libreoffice calc - 宏中的varargs

时间:2016-12-13 16:00:08

标签: macros libreoffice openoffice.org basic libreoffice-calc

我理解Excel有一个TEXTJOIN函数,允许人们将多个值显示为元组。

我也理解自由办公室 - 无论出于何种原因 - 没有它们。

如何编写一个为我生成所需元组表示的辅助宏vec

E.g。 =vec(A1)应生成="("&A1&")"

=vec(A1:A3)应生成="("&A1&","&A2&","&A3&")"

=vec(A1,X5:X99,Z3)应该会产生="("&A1&","&"X5"&","&X6&...&x99&","&Z3&")"

等等。

很容易在bash中实现一个宏,但是我想先定义一次然后在calc中使用它,而不是经常从控制台复制到电子表格。

我如何在calc中实现它?

1 个答案:

答案 0 :(得分:0)

根据https://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=67880,如果使用Option Compatible声明,则Basic函数可以使用可变数量的参数。这使它的行为更像MS Excel。参数声明为ParamArray pa()

@tohuwawohu发布的链接显示了所需的大部分实施细节。

要以LibreOffice更为原生的方式执行此操作,请使用使用any[]作为参数的Java声明编写电子表格插件。有关加载项参数类型的信息,请参阅https://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/AddIn.html

实际功能也可以用Java实现。或者,它可以用另一种接受可变数量参数的语言实现,例如Python *args