我有一项任务,如果列的标题是" Jan-00",则应删除整个列。工作表中有许多这样的列。由于无效的公式出现,因此在插入列时会自动填写(我无法更改公式但只删除列)。桌子的屏幕截图如下。
这是更正后的代码:
For i = LastColumn to i+1 step -1
If ActiveSheet.Cells(1, i) = 0 And IsDate(ActiveSheet.Cells(1, i).Value) Then
Columns(i).EntireColumn.Delete
Else
End If
Next i
我认为这里的问题是指出Jan-00的正确格式?任何建议将不胜感激。谢谢!
答案 0 :(得分:1)
Jan-00
很可能是值0的一些模糊格式。
所以(并整理一些语法)
If ws.Cells(1, i).Value = 0 Then
应该工作。
另外,考虑向后运行循环,否则你会错过连续的零。
答案 1 :(得分:1)
Option Explicit
Public Sub TestMe()
Dim i As Long
dim k as long: k = 1
Dim LastColumn As Long: LastColumn = 6
For i = LastColumn To k Step -1
If ActiveSheet.Cells(1, i) = 0 And IsDate(ActiveSheet.Cells(1, i).Value) Then
Columns(i).EntireColumn.Delete
Else
End If
Next i
End Sub
您引用单元格的方式有误。它不应该是Cells.Value(1,i)
,而是如图所示。此外,我已经添加了格式检查,无论是日期。
答案 2 :(得分:0)
您可以使用此
For i = 1 To LastColoumn
If ws.Cells(1, i).Value Like "Jan-00" Then Columns(i).EntireColumn.Delete
Next i
答案 3 :(得分:0)