【问题标题】:Run-time error '509': this command is not available- WordBasic for Word 2013运行时错误“509”:此命令不可用 - WordBasic for Word 2013
【发布时间】:2013-11-29 06:14:21
【问题描述】:

我有一个宏代码,其中包含以下 Wordbasic 调用行:

 WordBasic.FormatFont Font:='Courier New', Points:=8

我已经运行了代码,它在 word 2013 的这个命令中给出了运行时错误 509。 虽然我在 word 2013 中为 wordbasic.Formatfont 编写了单独的宏,但它运行得非常好。我不知道它背后的问题是什么。

我在 google 中找不到任何纠正方法。有没有其他方法可以解决 Microsoft Word 2013 中的 wordBasic 调用?

【问题讨论】:

    标签: macros ms-word runtime-error


    【解决方案1】:

    WordBasic 返回一个自动化对象 (Word.Basic),其中包括 Word 6.0 版中可用的方法。它已经过时了。改用 Visual Basic 对象和方法。

    WordBasic:

    WordBasic.FormatFont Font:='Courier New', Points:=8
    

    在 VBA 中是

    With Selection.Font 
        .Name = "Courier New"
        .Size = 8
    End With
    

    这个答案并不完全是您所要求的,而是一种解决方法。但恕我直言,这是最好的方法 - 我建议不要使用 WordBasic,使用 VBA。请参阅 msdn.com 上的Converting WordBasic Macros to Visual Basic

    【讨论】:

    • 非常感谢您的意见。我在我的 word 2013 宏代码中使用它,但我得到一个新的运行时错误'4605':此命令在 With Selection.Font .name = "Courier New" .Size = 8 End With in .name 中不可用="Courier New" 行。你能帮我解决这个问题吗。\
    • 这很奇怪。它看起来像您之前的错误,但在 VBA 中。请检查(出现错误后),如果 ActiveDocument 是您想要的文档,光标是否在预期位置以及用户是否可以选择字体。我猜该文档不是处于应有的状态。
    • 能否分享一下我是如何使用 ActiveDocument 进行选择的。
    • Selection 对象实际上是 ActiveDocument.ActiveWindow.Selection 对象。如果宏切换到另一个文档,这个新文档是ActiveDocument。这通常是错误的来源。所以第一个问题:您确定您正在处理所需的文件吗?不是关闭了吗?我认为 Document 对象中的 Selection 对象应该有一个字体属性。这就是为什么我会检查目标文档的状态。
    • 当我在宏中使用 .Name 进行选择时,它会自动将 .Name 转换为 .name。我们可以把它归结为一个问题吗?
    猜你喜欢
    • 1970-01-01
    • 2022-08-21
    • 2021-10-31
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    相关资源
    最近更新 更多