我正在处理正在阅读两个工作表的代码。第一个WS包含所有我想要的类别,但不包含与它们相关的所需值。第二个WS包含我想要的类别和值,但也包含不需要的类别和值。我想编写一个宏,将所有数据合并到最右边提供的格式中。
DA是期望的类别A,RA是随机类别A
这是我写的用来处理这个问题的宏。它适用于大约100行左右,然后突然停止工作...任何想法为什么?
Sub reader2()
Dim i As Long, w As Long, a As String, b As String, c As Long, d As Long
'declare variables
i = 770 'set counters
w = 1163
Do Until IsEmpty(Worksheets("Calc").Cells(i + 3, 4).Value)
'declare termination condition
a = Worksheets("Calc").Cells(i + 3, 4).Value 'set match value
Do Until a = b 'error nest loop
b = Worksheets("Sales data").Cells(w + 4, 5).Value 'value of b
If a = b Then 'match conditions
c = Worksheets("Sales data").Cells(w + 4, 7)
d = w
End If
w = w + 1 'goes down one more row every cycle
If w > 10000 Then Exit Do 'failsafe for value not existing
Loop
Cells(i + 3, 9).Value = c 'match value
i = i + 1 'iteration
If w > 10000 Then 'reset counter to last correct match
w = d
Cells(i + 3, 9).Value = "none" 'alert that no value found
End If
Loop
End Sub
对于这些示例,使用VLOOKUP(谢谢老虎)作为值存在且代码失败的证明。 VLOOKUP是右边的列,而宏是左列
示例错误1 Ex 1适用于第一个未找到的值(100000000),稍后会在它们存在且值为0时给出一系列未找到的值(100000000)。