对于VBA,表的处理方式是否不同?
我有一个简单的宏,我试图删除列S中的单元格作为表格的一部分为空的所有行(" Table1
")。但是,我收到一个错误框,其中包含" 400
"在它和谷歌没有帮助我。
这个宏工作如果我更换" & LastRow
号码为" S2:S1000
"例如。
Sub deleteBlankRows()
Dim LastRow As Long
LastRow = Range("B" & Rows.Count).End(xlUp).Row
With Range("S2:S" & LastRow)
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub
答案 0 :(得分:1)
发生错误是因为要从表中删除整行。您可以将表格转换为范围,或在宏中使用Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/Applications/PyCharm CE.app/Contents/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 20, in do_import
module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'lr_utils'
而不是Rows
:
EntireRow
答案 1 :(得分:1)
假设您要删除的行在表格中仅 ,您还可以直接使用表格对象本身。
With ListObjects("Table1")
.ListColumns("myColumnName").DataBodyRange.SpecialCells(xlCellTypeBlanks).Rows.Delete
End With