vba - 从具有合并单元格的表格中删除范围

标签 vba ms-word

基本上,我想要完成的是:删除表中从光标所在位置到表末尾的所有行。

问题是这个表包含垂直合并的单元格,所以当我尝试做这样的事情时:

For i = Selection.Tables(1).Rows.Count To Selection.Cells(1).RowIndex Step -1
    Selection.Tables(1).Rows(i).Delete
Next

它提示无法访问单个行,因为该表包含垂直合并的单元格。

我也试过先选择范围,然后删除选择。但我无法正确定义范围;它总是提示有一个不正确定义的参数。

最佳答案

使用 VBA 合并表格单元格不是很麻烦吗? Word 似乎对列数和行数感到困惑。对于水平或垂直合并单元格的任何组合,以下内容似乎非常强大。

Sub DeleteRows()

    Selection.MoveDown Unit:=wdLine, Count:=(Selection.Tables(1).Rows.Count - Selection.Cells(1).RowIndex), Extend:=wdExtend
    Selection.Rows.Delete

End Sub

关于vba - 从具有合并单元格的表格中删除范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13818541/

相关文章:

vba - 在后台运行宏

vba - 使用 VBA 更改所有数据透视表上的过滤器

c# - Word 应用程序在执行 Documents.Open(ref filename) 方法和处理 Application.DocumentOpen 事件时挂起

ms-word - 如何以编程方式选择MS Word 2007文档或模板中的复选框?

javascript - 使用office.js插入word后失去选择

javascript - 是否可以在 context.sync 之前对多个 context.load 进行排队?

c# - 使用 Interop 在 C# 中创建 Word 文档的更快方法

vba - Excel VBA重复更改控制单元占用内存

vba - 应该为 .Find(LookAt : = xlPart/xlWhole)? 选择哪种变量类型

ms-access - 如何判断表单是否作为子窗口启动