我有这个代码的问题,其中列仍显示,尽管不符合IF条件:如果包含语句<>为调节不灵
If CBool(Application.WorksheetFunction.CountIf(.Columns(j), "<>0"))
代码循环列,而仅显示列值大于0.我不知道问题是j
还是CBool
条件本身。我希望得到一些帮助,因为我真的需要这些代码来处理我的excel,因为分析起来会更简单和有用!谢谢。
Sub TestPasteColumnData3()
Dim lastcol As Long
Dim j As Long
With Worksheets("WF - L12 (3)")
lastcol = .Cells(5, Columns.Count).End(xlToLeft).Column
For j = 3 To lastcol
'change >0 to <>0 and 3 to j
If CBool(Application.WorksheetFunction.CountIf(.Columns(j), "<>0")) Then
.Columns(j).Copy Destination:=Worksheets("Sheet 1").Columns(j) 'Dont delete, this code works
Else
MsgBox ("No Value")
Exit Sub
End If
Next
End With
MsgBox ("Done")
End Sub
您的数据是否包含负值?所有值都是数字吗?它是否包含任何空白单元格? –