我的公司将从Excel更改为Libre Office Calc。我已经建立了一个Excel VBA宏集合(特别是屏幕抓取宏)。我的宏可以无需更改吗?任何其他人做出了改变,你如何顺利地做出改变?
答案 0 :(得分:3)
橡皮鸭可能已经回答https://stackoverflow.com/a/24749320/7326037
来自LibreOffice的在线帮助文件:
除了少数例外,Microsoft Office和LibreOffice无法运行 相同的宏代码。 Microsoft Office使用VBA(Visual Basic for 应用程序)代码,而LibreOffice使用基于的Basic代码 LibreOffice API(应用程序接口)环境。虽然 编程语言是相同的,对象和方法是 不同。
最新版本的LibreOffice可以运行一些Excel Visual 如果您在LibreOffice上启用此功能,则为基本脚本 - PreferencesTools - 选项 - 加载/保存 - VBA属性。事实上, 你最有可能需要坐下来使用LibreOffice API 重写功能。
这篇文章还表明,部分VBA宏可以正常运行,但需要进行一些手动迁移。 https://ask.libreoffice.org/en/question/6621/import-ms-word-macros/?answer=6982#post-id-6982
在ODF / ODS文件中,您必须在宏的开头启用VBA支持,否则它需要LO-Basic:
Option VBASupport 1
Option Compatible
最终,你可能需要经历每一个并检查它是否正常运行。
答案 1 :(得分:1)
在大多数情况下,如果不将宏从VBA转换为Libre Office Basic,这将无效。在执行切换到Libre Office之前,您需要重写它们并进行测试,以便顺利切换。