With WS.UsedRange
For iCol = .Columns.Count To 1 Step -1
If WorksheetFunction.CountA(.Columns(iCol)) = 1 Then
.Columns(iCol).EntireColumn.Delete
Next
End With
如果我没有错,WorksheetFunction.CountA将计算非空列的数量。如果列不为空,WorksheetFunction.CountA(.Columns(iCol))= 1将给出结果True,因为值为1。
但是,我正在尝试删除空列,这段代码就是这样做的。但不确定此代码的工作原理。
此代码适用于删除空列。但是,目前尚不清楚。 有人可以帮我清楚吗?
答案 0 :(得分:0)
您显示的代码无效,因为缺少End If
或.Columns(iCol).EntireColumn.Delete
必须紧跟在同一行的Then
假设您的实际代码确实有效,那么您对WorksheetFunction.CountA
的工作方式是正确的,这必然意味着如果您的列只有一个值(可能是某个标题),则认为它们是空的
当然这也意味着标题必须在想要的行
中如果你想删除完全空列,你必须编码
If WorksheetFunction.CountA(.Columns(icol)) = 0 Then .Columns(icol).EntireColumn.Delete