我正在尝试运行邮件合并,并且如果该行的最后一个单元格为空,我想删除每个表中标题旁边的所有行。
这是我遇到不匹配错误的行:
If Split(.Cell(r, c).Range.Text, vbCr) = 0
以下是子:
Sub Delete_row_if_last_cell_is_blank()
Application.ScreenUpdating = False
Dim Tbl As Table, r As Long, c As Long
ActiveDocument.MailMerge.Execute
With ActiveDocument
For Each Tbl In .Tables
With Tbl
c = .Columns.Count
For r = .Rows.Count To 2 Step -1
If Split(.Cell(r, c).Range.Text, vbCr) = 0 Then .Rows(r).Delete
Next
End With
Next
End With
Application.ScreenUpdating = False
End Sub
我尝试将结果设置为空或“”,但仍然不起作用。
Split 返回拆分项的数组。因此,而不是
Split(.Cell(r, c).Range.Text, vbCr) = 0
使用
Ubound(Split(.Cell(r, c).Range.Text, vbCr)) = 0
给出数组的顶部索引值。