В VBA я пытаюсь запустить al oop с оператором if. L oop настроен для одновременного запуска строки для диапазона (wks "Данные", B7: J25).
Для каждой строки, если значение в столбце C7: C25 равно 1, я хотел бы скопировать эту строку (например, B7: J7) и вставить ее в таблицу «temp» по одному за раз.
Я пробовал различные коды, например:
Sub start()
Dim i As Integer
Dim wsData, wsCalcAndOutput, wsTemp As Worksheet
For i = 1 To 25
If Cells((7 + i), 3) = "1" Then
Worksheets("Data").Range("B7:J7").Copy _
Worksheets("temp").Range("B7:J7")
End If
Next
End Sub
Но тогда я могу только скопировать и вставить первую строку диапазона. Кроме того, я нашел эту процедуру в stackoverflow, но я не могу вставить то, что копирую на каждой итерации:
Dim wsData, wsCalcAndOutput As Worksheet Dim rSPX, rSX5E, rNKY, rUKX, rSMI, REEMUP, testData As Range
Sub start()
Dim i As Integer
For i = 1 To 25
If Cells((7 + i), 3) = "1" Then
With ActiveSheet
.Range(.Cells((7 + i), 2), .Cells((7 + i), 10)).Copy
End With
End If
Next
End Sub
Это правильный способ сделать это или есть более эффективный способ?
Также - в наборе данных критерием для оператора if на самом деле является строка с именем «ИСТИНА» или «ЛОЖЬ». Может ли оператор if использовать строку в качестве сигнала вместо «1»?
Всего наилучшего, Кристоффер