首页 > 解决方案 > 从 Excel VBA 创建和格式化 Word 表格时遇到问题

问题描述

我是 MS Word VBA 的新手,在从 Excel 操作 Word 文档时遇到了麻烦。

迄今为止最大的问题是:在 Word VBA 中工作的代码在 Excel 中不起作用。非常奇怪和令人沮丧。

以下是代码:

Sub abc()
Dim MSWordApp As Object, MSWordDoc As Object

    Set MSWordApp = CreateObject("Word.Application")
    Set MSWordDoc = MSWordApp.Documents.Add
    MSWordApp.Visible = True
    With MSWordDoc
        With .PageSetup
            .TopMargin = Application.CentimetersToPoints(0.51)
            .BottomMargin = Application.CentimetersToPoints(0.51)
            .LeftMargin = Application.CentimetersToPoints(0.51)
            .RightMargin = Application.CentimetersToPoints(0.51)
        End With
        .Tables.Add Range:=.Range(0, 0), NumRows:=3, NumColumns:=2
        With .Tables(1)
            .Rows.Alignment = wdAlignRowCenter
            .Rows.HeightRule = wdRowHeightExactly
            .Rows.Height = Application.CentimetersToPoints(9.55)
            .Columns.PreferredWidthType = wdPreferredWidthPoints
            .Columns.PreferredWidth = Application.CentimetersToPoints(9.9)
        End With
    End With

    MSWordApp.Activate
    Set MSWordApp = Nothing
    Set MSWordDoc = Nothing
End Sub

这些代码在 MS Word 中完美运行(当然,当我在 MS Word 中使用它们时,我已经更改了对象等的名称)。

然而,奇怪的事情发生在 Excel 中:

1)“.Rows.Alignment = wdAlignRowCenter”根本不起作用。Word 表的 Rows.Alignment 保持默认。

2) ".Columns.PreferredWidthType = wdPreferredWidthPoints" 导致 Excel 出错。它在 Word 中运行良好;虽然在 Excel 中,每次调用此属性时都会弹出一个空的错误消息。不知道为什么...

标签: excelvbams-word

解决方案


从 Excel VBA 控制 Microsoft Word 时,您需要添加对 Microsoft Word 对象库的引用。为此,请确保您位于 VBA 窗口中的模块上,然后Tools单击References...。在弹出窗口中,向下滚动以找到“Microsoft Word XX.X 对象库”。版本 # 将根据您安装的内容而有所不同。

添加对 Word 对象库的引用

如果它没有显示在列表中,您可以在硬盘上找到它,方法是单击“浏览...”并导航到安装 MS Word 的程序文件夹,然后选择名为“MSWORD.OLB”的文件.


推荐阅读