vba - 使用“isempty”删除表格行
问题描述
有人可以告诉我为什么,当我运行此代码时,当我的表中有空行时,它会跳过tbl.Range.Rows(i).Delete行?
非常感谢
黛比
Dim i 只要 Dim tbl As Table
Set tbl = ActiveDocument.Tables(2)
For i = tbl.Range.Rows.Count To 1 Step -1
With tbl
If IsEmpty(tbl.Range.Rows(i)) = True Then
tbl.Range.Rows(i).Delete
End If
End With
Next
解决方案
简单的答案是,在 Word 中,一行永远不会为空 - 它始终包含单元格结尾和行结尾字符。尝试:
Dim r As Long
With ActiveDocument.Tables(2)
For r = .Rows.Count To 1 Step -1
With .Rows(r)
If Len(.Range.Text) = .Cells.Count * 2 + 2 Then .Delete
End With
Next r
End With
请注意,如果表格具有垂直合并/拆分单元格,则上述代码将不起作用。
推荐阅读
- java - 尝试以相反顺序读取两个标准时,为什么我的输出为空白?
- python - Python fbs - 冻结后模块导入不起作用
- python-3.x - GCP Pub/Sub 无法确认消息
- javascript - 使用 JavaScript 突出显示选定的 div
- ios - UiTableView 出现在 ViewController ios 上的错误位置
- python - 使用 Python 提取嵌套列
- office-js - office javascript 加载项功能区标准命令,例如复制或剪切
- r - 动态 UI,允许更新过滤器并在闪亮的 R 中绘制
- excel - 使用变量作为文件名的打开工作簿命令
- react-admin - 如何在 React-Admin 中更改 SaveButton 图标