【发布时间】:2017-05-05 10:09:37
【问题描述】:
我的公司将从 Excel 更改为 Libre Office Calc。我已经建立了一组 Excel VBA 宏(尤其是屏幕抓取宏)。我的宏会在没有更改的情况下工作吗?还有其他人进行了更改,您如何顺利进行更改?
【问题讨论】:
标签: vba excel libreoffice-calc
我的公司将从 Excel 更改为 Libre Office Calc。我已经建立了一组 Excel VBA 宏(尤其是屏幕抓取宏)。我的宏会在没有更改的情况下工作吗?还有其他人进行了更改,您如何顺利进行更改?
【问题讨论】:
标签: vba excel libreoffice-calc
Rubber Duck https://stackoverflow.com/a/24749320/7326037已经回答了可能
来自 LibreOffice 的在线帮助文件:
除了少数例外,Microsoft Office 和 LibreOffice 无法运行 相同的宏代码。 Microsoft Office 使用 VBA(Visual Basic for 应用程序)代码,LibreOffice 使用基于 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
最终,您可能必须逐一检查并检查其功能是否正常。
【讨论】:
在大多数情况下,如果不将宏从 VBA 转换为 Libre Office Basic,这将不起作用。在切换到 Libre Office 之前,您需要重写并测试它们以进行平滑切换。
【讨论】: