为什么要在调整要清除的行时会遇到对象定义的错误



我有一个特定的模板,该模板在单元格B9中启动它是打印的数组数据,但是我只想清除其内容(未删除,因为我有drop-drop-下菜单)。

Rows(8).Offset(1, 0).Resize(Rows.Count - 1).EntireRow.ClearContents

似乎不起作用,但是当我有Rows(1).Offset(1,0)等...在那里时确实有用。当我调整行号以启动时,为什么现在不想工作?

Rows.Count在工作表中给出最大行数(通常是1'048'576)。

拆分命令Rows(8).Offset(1, 0).Resize(Rows.Count - 1)

Rows(8)为您提供第8行($8:$8

.Offset(1, 0)给您下一行($9:$9

.Resize(Rows.Count - 1)询问从第9行开始大小的范围,以便它是1'048'576行"高"。但是,这意味着第9行,直到行 1'048'585 ,这将是最大行数。

您可能的意思是删除数据结束。找出数据结束不是很容易的任务,通常是通过类似的结构来完成的 rowCount = Cells(Rows.Count, 2).End(xlUp).Row。这将(实际上)跳到单元格B1048576,模拟键" ctrl up",然后(实际上)跳到该列中保存数据的最后一行。如果要检查该列,将2更改为任何其他列号(A为1 ...)。

尝试以下代码:

Dim rowCount As Long
With ActiveSheet
    rowCount = .Cells(.Rows.Count, 2).End(xlUp).Row
    .Rows(8).Offset(1, 0).Resize(rowCount - 1).EntireRow.ClearContents
End With

最新更新