我對此感到抱歉。這裏去試圖澄清:我的計數變量不會增加超過1的值vba
僞代碼:
- 對於列表中的一個(一)各項目 - >設置列表計數變量爲零
- 確認各項目兩(j)的
- 如果列表中的一個項目匹配列表中的兩個項目則計數器和存儲值
- 如果count == 1然後做的東西(名單列表中發現了兩個有一次一個項目)
- 如果count == 2,然後做其他的東西(列出在列表二中找到的一個項目兩次)
- 下一個項目
我的問題是,「股票」變量被遞增式內,但該變量的值不會從1更改爲2。因此,聲明「如果count = 2「永遠不會發射。我的圖片顯示了在j For循環的每次迭代中,我已經打破了代碼,以監視「ticker」變量的值。在「ticker」應該從1變爲2的迭代中,IF語句內部的等式表明它增加了,但本地窗口中顯示的變量值不會改變。
代碼:
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循環之前聲明ticker = 0,會發生什麼? – Sami
這是一大堆代碼。你應該縮小這個問題的範圍,以便提出一個人們想要回答的問題。參見[mcve]和[問]。 –
這是旁觀點,但是這條線是不好的形式:'昏暗的計數器,計數器1,計數器,duplicateCount,行情作爲長'。 (除*'ticker'之外的所有變量均隱含爲Variant類型,只有'ticker'爲'Long'數據類型)。您的其他聲明陳述遭受同樣的命運。 –