宏在最后一个标题名称运行后清除所有列但不清除

时间:2014-05-03 20:37:18

标签: excel-vba vba excel

我正在尝试清除最后一个标题行

之后的所有列

宏运行但是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

2 个答案:

答案 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