【发布时间】:2021-02-09 07:57:50
【问题描述】:
我正在尝试做一个宏来生成一个基于查找列表的列表。由于某种原因,外部循环不起作用,它只迭代一次。
Sub Macro5()
Dim LookupRng As Range
Dim Store As String
Dim jrow As Integer
Dim irow As Integer
Dim i As Integer
Dim j As Integer
Set LookupRng = Sheet1.Range("B2") ' The Lookup range
jrow = Sheet2.Range("T" & Rows.Count).End(xlUp).Row ' last row of list of values to be searched
irow = Sheet1.Range("B" & Rows.Count).End(xlUp).Row ' last row of lookup range
Sheet3.Range("A2:A" & Rows.Count).Clear
For j = 2 To jrow
Store = Sheet2.Cells(j, 20).Value ' the value to be searched in the lookup range
For i = 1 To irow
If LookupRng.Value = Store Then
Sheet3.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Value = LookupRng.Offset(0, -1).Value
End If
Set LookupRng = LookupRng.Offset(1, 0)
Next i
Next j
i 循环有效,它搜索与“Store”匹配的所有值,但由于某种原因,j 循环似乎不起作用,它不会跳转到“Store”列表的下一个值。 我是新手,所以希望有一个简单的解决方案,但我们将不胜感激任何帮助
【问题讨论】:
-
你检查过
jrow的值吗?您是否使用调试器单步执行您的代码? -
应该
LookupRng每次都回B2吗? -
如果你使用
Find方法,你可以完全避免循环。