Есть макрос VBA. В чем смысл: имеется таблица данных (лист TinK), в нем работает цикл, который переносит данные из TinK на лист ws2. Нужно условие, чтобы он делал это только если значение ячейки по строке в колонке 5 было меньше нуля. Если больше нуля, то чтобы ничего не переносил и переходил к следующей строке
Написал такой код:
Код
Dim wsTinK As Worksheet
Set wsTinK = Application.ThisWorkbook.Sheets("TinK")
Dim ws2 As Worksheet
Set ws2 = Application.ThisWorkbook.Sheets("ws2")
Dim i As Integer ' Переменная для номера строки
Dim j As Integer ' Переменная для номера столбца
i = 1
j = 1
If wsTinK.Cells(i + 1, 5) < 0 Then
Do While wsTinK.Cells(i + 1, 1) <> ""
ws2.Cells(10, 7) = wsTinK.Cells(i + 1, 5)
i = i + 1
Loop
Else
i = i + 1
End If
Перенос работает великолепно, но условие "если" не срабатывает
Подскажите, пожалуйста, что не так и как это исправить?
Sub jjj()
Dim wsTinK As Worksheet, ws2 As Worksheet
Dim i As Long, j As Long
Set wsTinK = ThisWorkbook.Sheets("TinK")
Set ws2 = ThisWorkbook.Sheets("ws2")
For i = 1 To 20 ' до какой строки?
If wsTinK.Cells(i, 5).Value < 0 Then
''''
End If
Next i
End Sub
Да эту тему вообще нужно удалить - тут нет никакой проблемы с ЕСЛИ, тут проблема с пониманием кода и логикой, ЕСЛИ там должно отработать, один раз. Если конечно есть такие листы.