0"))-6ren">
gpt4 book ai didi

vba - 包含 <> 的 if 语句无法正常工作

转载 作者:行者123 更新时间:2023-12-02 09:36:17 26 4
gpt4 key购买 nike

我在使用此代码时遇到问题,尽管不满足 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

最佳答案

如果 CountIf 函数不等于 0,则该函数将计算范围内的任何内容,包括空白单元格,这将导致您的

CBool(Application.WorksheetFunction.CountIf(.Columns(j), "<>0"))

如果除了全 0 的列(没有空格)之外还有其他内容,则为 TRUE

你可以尝试一下

If Application.WorksheetFunction.Sum(.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

这将为您提供任何包含大于 0 的值的列,但仍会考虑该列中可能存在的任何空白(或其他情况)。

关于vba - 包含 <> 的 if 语句无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37265699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com