我想创建一个宏,查找带有标题的最后一列,并仅当该列的总和等于零时才将其删除。到目前为止,这是我尝试过的:
Dim LastCol As Long, Dim i As Long
With ThisWorkbook.Sheets("Sheet1")
For i = Range("A1").Column To LastCol Step -1
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
If Application.Sum(Cells(1, i).Resize(LR, 1)) = 0 Then
Columns(i).EntireColumn.Delete
End With
Next i
预先感谢您的关注和帮助
像这样尝试一下:
Option Explicit
Public Sub TestMe()
Dim LastCol As Long, i As Long, LR As Long
LR = 5
With ThisWorkbook.Sheets(1)
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = LastCol to .Range("A1").Column Step -1
If Application.Sum(.Cells(1, i).Resize(LR, 1)) = 0 Then
.Columns(i).EntireColumn.Delete
End If
Next i
End With
End Sub
这就是我所改变的:
- 删除 2.“在这里变暗 -> 变暗 LastCol As Long,i As Long;
- 正确参考
With
- End with
- 拥有它是一个很好的做法,但它应该给你带来一些东西 - 因此,你应该在范围前加一个点 -.Range("A1").Co..
, .Columns(i).Entir...
, .Cells(1, .Columns
- 你需要
End If
条件结束时;
- Adding
[Option Explicit][1]
on top 可帮助您在运行代码之前找到类似的错误;
- 你指的是
lastcol
在赋值之前。因此,它应该在循环之前;
- 循环从第 1 列开始,步骤 -1。它需要逆转(10x @Scott Craner);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)