gpt4 book ai didi

vba - 如果存在特定值,则跳过循环迭代

转载 作者:行者123 更新时间:2023-12-04 21:38:38 24 4
gpt4 key购买 nike

我在下面有以下代码,它遍历特定​​范围的行,如果存在值(未看到代码),则创建整个页面的副本。我担心的是 r1 迭代中代码的底部。它最初只有一个条件语句......
If BiDiRowValid(r1)
我想添加第二个条件语句,我做了......

and Range("MAIN_BIDI_PINMC") <> "No BiDi"

但是当我运行代码并且 MAIN_BIDI_PINMC range = "No BiDi"时,它会出错并且不会越过那条线。仅供引用:IsBiDiRowValid() 是一个检查特定 r1 ​​是否为空的函数,然后继续。在该子例程完成并退出后,我的代码错误并出现“类型不匹配错误”。我还添加了 ElseIf在底部的行中,我没有得到那个代码,因为上面的错误已经出现了,但我只是想确保我正确地编写了这个迭代,以及是否需要做其他事情。基本上,如果在范围内找到“NoBiDi”,我希望它跳过所有这些代码并转到下一个 r1 ......这就是我认为我写的......提前谢谢!
Private Sub start_new()
Dim MC_List As Range
Dim r1 As Range
Dim biDiPinName As Range
Dim Pin As String
Dim mc As String
Dim mType As String
Dim tabName As String
Dim rowNumber As Integer
Dim pinmcSplit() As String
Dim NoBidi As String

On Error GoTo start_biDi_tr_new_Error



Set MC_List = Range("MAIN_PINMC_TABLE")
Set biDiPinName = Range("MAIN_PIN2_NAME")



For Each r1 In MC_List.Rows
If IsBiDiRowValid(r1) And WorksheetFunction.CountIf(Worksheets("MAIN").Range("MAIN_BIDI_PINMC", "No Bidi") = 0 Then
tabName = r1.Cells(1, 8)
pinmcSplit = Split(tabName, "_")
Pin = pinmcSplit(0)
mc = pinmcSplit(1)
mType = r1.Cells(1, 3)
ElseIf WorksheetFunction.CountIf(Worksheets("MAIN").Range("MAIN_BIDI_PINMC"), "No Bidi") = 1 Then
End If
Next

最佳答案

您收到该错误是因为 Range("MAIN_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

关于vba - 如果存在特定值,则跳过循环迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25852249/

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