Я написал ниже код. Его петля внутри цикла. Первый цикл запускается для поиска значения 1-го диапазона (sheet1) во всех диапазонах второго цикла (лист2). Я хочу, чтобы второй цикл остановился, если условие выполнено, и приступим к следующему значению.Петля внутри петли. Остановка второго цикла, если условие выполнено
Я использую «Exit For» для остановки 2-го цикла, если условие выполнено. но проблема в том, что ...
Когда первый цикл = 2, второй цикл также равен 2 и условие выполнено, второй цикл останавливается. Первый цикл становится = 3, но второй цикл все еще остается = 2, что вызывает несоответствие и отказ для всех. Пожалуйста помоги.
For I = 2 To REND
For P = 2 To ENDROW
If Range("D" & I) = D.Range("c" & P) Then
If Range("H" & I) = D.Range("F" & P) Then
Range("A" & I) = "MATCHED"
Exit For
Else
Range("A" & I) = "DIFFERENCE OF " & Range("G" & I) - D.Range("F" & P)
End If
Else
Range("A" & I) = "AP NOT FOUND"
End If
Next P
Next I
Где заявления являются:
Dim D As Worksheet, F As Worksheet, R As WorksheetDim X As String
Dim I As Integer, ENDROW As Integer, FEND As Integer
Dim P As Integer, REND As Integer, L As Integer
Set D = ActiveWorkbook.Sheets("DWAC")
Set F = ActiveWorkbook.Sheets("FPS")
Set R = ActiveWorkbook.Sheets("RAW")
ENDROW = D.Range("C2").End(xlDown).Row
FEND = F.Range("C2").End(xlDown).Row
REND = R.Range("C2").End(xlDown).Row
Возможно, я еще не совсем понял ваш вопрос, но почему вы определяете страницу для одной стороны диапазонов сравнения, но не для других? (т. е. вы используете «диапазон» («G» и I) - D.Range («F» и P), почему первый диапазон не «страница» определен? Кроме того, вы сравниваете «значения» неявно, то есть без определения .Value свойство диапазона? Это может привести к несоответствию ошибок, поскольку в этом случае не определено, что именно следует сравнивать? – mtholen
Итак, я использую 'с листом' для первого диапазона, поэтому не нужно использовать' page.range' – Akkitech
. 2-е сравнительные поля содержат целое число, поэтому не используйте 'range.value' – Akkitech