我正在尝试清除最后一个标题行
之后的所有列宏运行但是no clearing
发生了,我已经玩了一段时间的语法并且没有得到它
由于
Sub ClearColumnsAfterLastHeader()
Dim ws As Excel.Worksheet
Dim hNames As Variant
Dim cell
Set ws = ActiveWorkbook.Sheets("Finished")
hNames = ws.Range("A1:R1").Value
For Each cell In hNames
If IsEmpty(cell) Then
cell.EntireColumn.ClearContents
End If
Next cell
End Sub
答案 0 :(得分:1)
您的代码的主要问题是hNames
是 Variant数组而不是Range
,当您循环遍历数组For Each cell In hNames
时,变量{ {1}}指的是数组元素而不是相应的单元格。因此,您无法使用cell
,因为cell.EntireColumn.ClearContents
不是 cell
,而是Range
。
根据我对问题的理解,您希望确定第一个行(标题行)中的最后一个填充单元格,并清除上一个填充右侧的所有列的内容头。在这种情况下,请尝试以下代码:
Variant
答案 1 :(得分:1)
你不能做像
这样的事情Sub ClearStuff()
Dim ws As Worksheet
Dim LastCell As Range, ClearRange As Range
Set ws = ActiveWorkbook.Sheets("Finished")
Set LastCell = ws.Cells(1, ws.Columns.Count)
Set ClearRange = Range(LastCell.End(xlToLeft).Offset(0, 1), LastCell)
ClearRange.EntireColumn.ClearContents
End Sub