Vba 如果存在某个值,则跳过循环的迭代
我有下面的代码,它在特定范围的行中进行迭代,如果存在一个值,那么代码将创建整个页面的副本。我关心的是r1迭代中代码的底部。它最初只有一个条件语句 如果BiDiRowValidr1 我想添加第二个条件语句,我做到了Vba 如果存在某个值,则跳过循环的迭代,vba,excel,if-statement,foreach,iteration,Vba,Excel,If Statement,Foreach,Iteration,我有下面的代码,它在特定范围的行中进行迭代,如果存在一个值,那么代码将创建整个页面的副本。我关心的是r1迭代中代码的底部。它最初只有一个条件语句 如果BiDiRowValidr1 我想添加第二个条件语句,我做到了 and Range("MAIN_BIDI_PINMC") <> "No BiDi" 因为RangeMAIN_BIDI_PINMC不是一个单元格,所以会出现该错误。要在多个单元格中检查值,可以使用Application.Worksheetfunction.Countif 编
and Range("MAIN_BIDI_PINMC") <> "No BiDi"
因为RangeMAIN_BIDI_PINMC不是一个单元格,所以会出现该错误。要在多个单元格中检查值,可以使用Application.Worksheetfunction.Countif 编辑 在聊天室中发布讨论后,用户希望循环浏览每个单元格
Dim aCell As Range
For Each r1 In MC_List.Rows
If IsBiDiRowValid(r1) Then
For Each aCell In Worksheets("MAIN").Range("MAIN_BIDI_PINMC")
If aCell.Value <> "No Bidi" Then
tabName = r1.Cells(1, 8)
pinmcSplit = Split(tabName, "_")
Pin = pinmcSplit(0)
mc = pinmcSplit(1)
mType = r1.Cells(1, 3)
End If
Next
ElseIf aCell.Value = "No Bidi" Then
'~~> Do Something
End If
Next
因为RangeMAIN_BIDI_PINMC不是一个单元格,所以会出现该错误。要在多个单元格中检查值,可以使用Application.Worksheetfunction.Countif 编辑 在聊天室中发布讨论后,用户希望循环浏览每个单元格
Dim aCell As Range
For Each r1 In MC_List.Rows
If IsBiDiRowValid(r1) Then
For Each aCell In Worksheets("MAIN").Range("MAIN_BIDI_PINMC")
If aCell.Value <> "No Bidi" Then
tabName = r1.Cells(1, 8)
pinmcSplit = Split(tabName, "_")
Pin = pinmcSplit(0)
mc = pinmcSplit(1)
mType = r1.Cells(1, 3)
End If
Next
ElseIf aCell.Value = "No Bidi" Then
'~~> Do Something
End If
Next
那是因为RangeMAIN_BIDI_PINMC不是一个单一的细胞,我猜?对。它是一系列细胞。我是否有办法访问该范围内的每个特定单元格值?也许还可以迭代该范围?我尝试在结尾添加.value,认为它可以访问每个特定的值。但请不要认为这是正确的。请使用Application.Worksheetfunction.Countif检查是否存在该单词:If IsBiDiRowValidr1和Application.Worksheetfunction.CountifRangeMAIN\u BIDI\u PINMC,No BIDI=0,则表示未找到。阅读excel帮助中的Countif:这是因为RangeMAIN_BIDI_PINMC不是一个单元格,我猜?正确。它是一系列细胞。我是否有办法访问该范围内的每个特定单元格值?也许还可以迭代该范围?我尝试在结尾添加.value,认为它可以访问每个特定的值。但请不要认为这是正确的。请使用Application.Worksheetfunction.Countif检查是否存在该单词:If IsBiDiRowValidr1和Application.Worksheetfunction.CountifRangeMAIN\u BIDI\u PINMC,No BIDI=0,则表示未找到。阅读excel帮助中的Countif:我正在使用上面编辑的代码。我把这两个条件改变后的行扔进手表,看看它们分别是什么值。该代码在一个pin上进行测试,该pin没有说No Bidi,而是一个数值。手表告诉我IsBiDiRow是真的,但是CountIf值是假的,当它应该读为真的时候。然后跳转到ElseIf语句,因为它读起来不是真的。我不知道它为什么读错了。nFound的价值是什么?我不是像你在代码中写的那样重新定义它,我是在我的原始问题中使用我编辑的代码。但是Application.WorksheetFunction.CountifRangeMAIN\u BIDI\u PINMC,如果单元格没有说No BIDI,并且如果单元格没有说No BIDI,则No BIDI值为FALSE。有没有办法知道它在计算什么单元格?它应该给你一个数字,而不是真/假?我明白。Countif返回一个长值,而不是布尔值。你一定做错了什么:我正在使用上面编辑的代码。我把这两个条件改变后的行扔进手表,看看它们分别是什么值。该代码在一个pin上进行测试,该pin没有说No Bidi,而是一个数值。手表告诉我IsBiDiRow是真的,但是CountIf值是假的,当它应该读为真的时候。然后跳转到ElseIf语句,因为它读起来不是真的。我不知道它为什么读错了。nFound的价值是什么?我不是像你在代码中写的那样重新定义它,我是在我的原始问题中使用我编辑的代码。但是Application.WorksheetFunction.CountifRangeMAIN\u BIDI\u PINMC,如果单元格没有说No BIDI,并且如果单元格没有说No BIDI,则No BIDI值为FALSE。有没有办法知道它在计算什么单元格?它应该给你一个数字,而不是真/假?我明白。Countif返回一个长值,而不是布尔值。你一定做错了什么事: