【问题标题】:libreoffice calc - varargs in macroslibreoffice calc - 宏中的可变参数
【发布时间】:2016-12-13 16:00:08
【问题描述】:

我了解 Excel 有一个 TEXTJOINfunction,它允许将多个值显示为一个元组。

我也了解 Libre Office 确实 - 无论出于何种原因 - 没有它们。

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

例如=vec(A1) 应该产生="("&A1&")"

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

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

等等等等

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

如何在 calc 中实现这一点?

【问题讨论】:

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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多