VBA 在 Microsoft Word 中工作正常,但在 Libre Office 作家中无法工作如何修复 [关闭]

Posted

技术标签:

【中文标题】VBA 在 Microsoft Word 中工作正常,但在 Libre Office 作家中无法工作如何修复 [关闭]【英文标题】:VBA work fine in Microsoft word but not working in Libre office writer how to fix [closed] 【发布时间】:2020-02-01 09:23:16 【问题描述】:

我使用此代码替换 word 文件中的文本,它在 Microsoft Office 中工作正常,但在 Libre office writer 上没有工作'

Private Sub CommandButton1_Click()

Dim AppWord As Word.Application

Set AppWord = GetObject(, "Word.Application")

AppWord.Activate

Options.DefaultHighlightColorIndex = wdNoHighlight

With ActiveDocument.Range.Find

      .Text = rep.TextBox1.Value
      .Replacement.Text = rep.TextBox2.Value
      .Replacement.ClearFormatting
      .Replacement.Font.Italic = False
      .Forward = True
      .Wrap = wdFindContinue
      .Format = False
      .MatchCase = False
      .MatchWholeWord = False
      .MatchWildcards = False
      .MatchSoundsLike = False
      .MatchAllWordForms = False
      .Execute Replace:=wdReplaceAll
    End With
    rep.Hide
End Sub    

【问题讨论】:

当问题显然是关于 Word 时,为什么这个标签被标记为 excel 【参考方案1】:

没有真正的经验,真的。但是 OO 和 LO 包含(有限的)对 VBA(语言和办公对象模型)的直接支持。这会自动与 MS 本机文件格式一起使用。在 ODF/ODS 文件中,您必须在宏的开头启用 VBA 支持,否则它需要 LO-Basic:

Option VBASupport 1
Option Compatible

但要为困难做好准备。请记住,LO 不会以 MS Office 文件格式存储自己的宏。尽管business-spreadsheets.com 提供了一个简单的在线转换器,但必须手动转换为 LO-Basic 和 UNO 对象模型。

回复您的评论:

就您而言,我认为只需在 Libre Office 的第一个 Sub 上方添加:Option VBASupport 1 即可启用 VBA 支持。您可以找到更多信息here

【讨论】:

您好,谢谢您的回复。您可以更改代码以在 Libre 办公室作家中工作

以上是关于VBA 在 Microsoft Word 中工作正常,但在 Libre Office 作家中无法工作如何修复 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

LinkToPrevious 的 Microsoft Word 2016 VBA 问题

如何在 Microsoft Word 的 VBA 中使用特殊字符?

让通配符在 Microsoft Word 的 VBA 宏中的查找和替换功能中起作用

Ubuntu中的LibreOffice是不是有类似于Microsoft office(word,excel等)的vba宏的东西? [关闭]

使用 VBA 将 Word Doc 保存为 2003 XML

如何解决从Access到Word传递的FormFields VBA的字符限制