我的计数variables不会增加超过1 vba的值

我很抱歉的混淆。 这里试图澄清:

伪代码:

  1. 对于列表1中的每个项目(i) – >将计数variables设置为零
  2. 检查列表2(j)中的每个项目
  3. 如果列出一个项目匹配列表两个项目,然后增加计数器和存储值
  4. 如果计数== 1然后做东西(列出一个在列表中find一个项目一次)
  5. 如果count == 2,那么做其他的东西(列出一个项目列表两个两倍)
  6. 下一项

我的问题是“ticker”variables在方程内部增加,但是variables值永远不会从1变为2.因此,语句“If count = 2”永远不会发生。 我的图片显示了在j For循环的每次迭代中,我已经破坏了代码的位置,以监视“ticker”variables的值。 在“ticker”应该从1变为2的迭代中,IF语句内部的等式表明它是递增的,但是在本地窗口中显示的variables值不会改变。

在这里输入图像说明

码:

For i = LBound(SAPanArray) To UBound(SAPanArray) anString = Trim(Split(SAPanArray(i), " ")(0)) ticker = 0 Set a = FindNextEmpty(Sheets("SAPdata").Range("F4")) If IsInArrayC(anString, SAPanArray) = 0 Then Sheets("SAPdata").Cells((a.Row), (a.Column)).Value = Sheets("SAPdata").Cells((i + 3), 9).Value Sheets("SAPdata").Cells((a.Row), 7).Value = (Sheets("SAPdata").Cells((i + 3), 10).Value) * 2000 Sheets("SAPdata").Cells((a.Row), 7).Interior.Color = RGB(255, 192, 0) Else For j = LBound(SAPbulkArray) To UBound(SAPbulkArray) SAPbulkArray = WorksheetFunction.Transpose(Sheets("SAPdata").Range("F4:F" & (Sheets("SAPdata").Range("F" & Cells.Rows.Count).End(xlUp).Row))) If InStr((SAPbulkArray(j)), anString) > 0 Then ticker = (1 + ticker) dupArray(ticker) = Sheets("SAPdata").Cells((j + 3), 7).Value End If If ticker = 1 Then If ((Sheets("SAPdata").Cells((i + 3), 10).Value) * 2000) <> (Sheets("SAPdata").Cells((j + 3), 7).Value) Then Sheets("SAPdata").Cells((a.Row), (a.Column)).Value = Sheets("SAPdata").Cells((i + 3), 9).Value Sheets("SAPdata").Cells((a.Row), 7).Value = (Sheets("SAPdata").Cells((i + 3), 10).Value) * 2000 Sheets("SAPdata").Cells((a.Row), 7).Interior.Color = RGB(255, 192, 0) End If ElseIf ticker = 2 Then summer = (dupArray(1)) + ((Sheets("SAPdata").Cells((i + 3), 10).Value) * 2000) If summer <> dupArray(2) Then If Not IsEmpty(Sheets("SAPdata").Cells((j + 3), 11)) Then Sheets("SAPdata").Cells((j + 3), 7).Value = Sheets("SAPdata").Cells((i + 3), 11).Value End If Sheets("SAPdata").Cells((i + 3), 11).Value = Sheets("SAPdata").Cells((j + 3), 7).Value Sheets("SAPdata").Cells((i + 3), 11).Font.Color = vbWhite Sheets("SAPdata").Cells((j + 3), 7).Value = ((Sheets("SAPdata").Cells((i + 3), 10).Value) * 2000) + Sheets("SAPdata").Cells((j + 3), 7).Value Sheets("SAPdata").Cells((j + 3), 7).Interior.Color = RGB(255, 192, 0) End If End If Next End If Next 

  For i = LBound(SAPanArray) To UBound(SAPanArray) anString = Trim(Split(SAPanArray(i), " ")(0)) ticker = 0 Set a = FindNextEmpty(Sheets("SAPdata").Range("F4")) If IsInArrayC(anString, SAPanArray) = 0 Then Else For j = LBound(SAPbulkArray) To UBound(SAPbulkArray) If InStr((SAPbulkArray(j)), anString) > 0 Then ticker = (1 + ticker) End If If ticker = 1 Then ElseIf ticker = 2 Then 

好的原谅我劈砍/削减一切,但这有助于我阅读你的逻辑顺序。

由于您的推理线,只有真实的evers需要是1或0。 该

  ElseIf ticker =2 

应该

  Elseif ticker = 0 

要么

  Else 'some more code 

因此,尽pipe股票代码需要大于1,那么yoyu可以省去麻烦。 到目前为止你所发布的内容并不需要。