3

I created and saved a spreadsheet that uses a macro for an interpolation task. When I open the document again all the cells calling the function are shown as #NAME? although the document still seems to contain the macro: When I open Tools | Macros | Organize Macros... | LibreOffice Basic Macros | (the document) | util | Module1 and click 'Edit' I can edit the source code as before.

Does anybody know what's wrong? How can I recover my file? I switched the security setting to 'Low (not recommended)', just be be sure, but only after having created and saved the file.

4

2 回答 2

2

在 libreoffice 或 openoffice basic 中,无法运行用户定义的函数,该函数存储在标准库以外的库中,作为单元格中的公式。尽管可以将函数存储在库中,但 UDF 必须位于标准库中。如果加载了这些库,它们(UDF)当然可以调用库中的函数。

库中的 UDF

UDF 可以在单元格中调用为 =UDF()。UDF2 也可以在单元格中调用为 =UDF2()。然后加载库“util”(如果尚未加载),并返回 utilUDF() 的结果。

另请参阅http://www.openoffice.org/documentation/manuals/userguide3/0312CG3-CalcMacros.pdf#7 “编写您自己的函数”第 7 至 12 页。

问候

阿克塞尔

于 2014-10-19T12:32:54.917 回答
1

我对用Sub Foo. 我将其更改为public function Foo,并且有效。

注意:经过 20 年的软件开发,LibreOffice API 是我使用过的最“愉快”的一个。文件很糟糕,到处都是,到处都是维吾尔语,或者完全失踪了。LibreOffice 宏 IDE 也非常无用。

于 2020-10-24T21:04:03.207 回答