使用.selectrow时,VBA Word出现错误438,VBA是否不协调打开的Word?

时间:2018-10-22 14:16:33

标签: excel vba ms-word

我正在尝试从Excel处理Word表。 Microsoft在这里已经解决了我遇到的一般问题:

https://docs.microsoft.com/en-us/office/vba/word/concepts/customizing-word/error-accessing-a-table-row-or-column

tldr:Word表中的合并单元格需要变通选择全部要删除的行。

我使用并自定义了以下代码段:

Sub RemoveTableBorders() 
    ActiveDocument.Tables(1).Cell(1, 1).Select 
    With Selection 
        .SelectRow 
        .Cells.Borders.Enable = False 
    End With 
End Sub

但是,我收到一个438错误,指向.SelectRow命令。 VBA告诉我这不是对象的有效命令。感觉就像当我使用With Selection命令时,Excel不能识别我正在尝试写到Word,因为.selectrow是Word命令。因此,我试图在选择中包括另一个指针,如下所示:

Sub RemoveTableBorders() 
    ActiveDocument.Tables(1).Cell(1, 1).Select 
    With ActiveDocument.Selection 
       .SelectRow 
       .Cells.Borders.Enable = False 
    End With 
End Sub

我无法提供可复制的代码。

我认为以下问题的答案也解决了我的问题:如果我有两个打开的Office程序实例,如何确定应该操纵哪个选择(Excel或Word)?

1 个答案:

答案 0 :(得分:0)

错误确实是VBA没有使选择单词变得困难。在With调用中进行以下调整后,代码将起作用:

Sub RemoveTableBorders() 
    ActiveDocument.Tables(1).Cell(1, 1).Select 
    With Word.application.selection
        .SelectRow 
        .Cells.Borders.Enable = False 
    End With 
End Sub

感谢您的帮助。