我需要遍历Sheet1中X列的所有行,获取它的值,然后查看是否存储在Sheet 2列A和B上的BETWEEN数字组合。值介于两者之间,然后在Sheet 1 Column Y中显示Sheet 2 Column C中的值(这将是一个非常简单的SQL查询)。当某些条件为真时,退出'For Each'循环
我在VBA上非常生锈,所以当出现匹配时我无法退出内部循环,并将Sheet2中的值粘贴到Sheet1。
Sub FindBetweenIP()
Dim ws1 As Worksheet
Set ws1 = Sheets(1)
Dim ws2 As Worksheet
Set ws2 = Sheets(2)
For Each cell In ws1.Range("X2:X" & ws1.Range("X" & Rows.Count).End(xlUp).Row)
For Each cell2 In ws2.Range("A2:A" & ws1.Range("A" & Rows.Count).End(xlUp).Row)
ip_range1 = cell2.Value2
ip_range2 = cell2.Offset(0, 1).Value2
isp = cell2.Offset(0, 2).Value2
If (cell.Value >= ip_range1 And cell.Value <= ip_range2) Then
cell.Offset(0, 1).Value2 = isp 'Seems to be not working
' ALSO, VALUE FOUND-- EXIT INNER LOOP
End If
Next
Next
End Sub
您正在寻找的线路,我认为是'退出',这将退出第二个循环并转到第一个循环的下一个循环。 –
上面的代码不起作用吗?它不会......吗?如果你想退出循环,你可以使用'Exit For',它将退出它所在的循环。 – BruceWayne
我用Exit For - 它工作;虽然我不明白为什么找到的值不会保存回Sheet1 – Andrew