Не работает условие IF - VBA
Формулировка задачи:
Помогите, плиииз, советом:
я применила код к своей базе данных.
он мне ищет номера торгов. Но почему-то в определённый момент затирает результаты поиска первых номеров.
то есть сначала он вставляет первый номер (куда надо), потом находит второй (записывает его куда надо), а первый при этом удаляет. Хотя при поиске номера ячеек не пересекаются. Подозреваю, что пишу в If что-то не так.
Листинг программы
- Dim dpt As Worksheet, i As Long, j As Long, m As Long, n As Long
- Dim dptArr(), dstArr()
- Application.ScreenUpdating = False
- Set dpt = Worksheets("DannyePoTorgam")
- With Worksheets("DannyePoTorgam")
- m = .Cells(.Rows.Count, 1).End(xlUp).Row
- dptArr() = .Range(.Cells(2, 2), .Cells(m, 13)).Value
- End With
- With Worksheets("Отчёт")
- n = .Cells(.Rows.Count, 1).End(xlUp).Row
- dstArr() = .Range(.Cells(2, 1), .Cells(n, 42)).Value
- i = 1
- Do While i <= n
- j = 1
- Do While j <= m
- 'если совпадает наименование лота и номер лота
- If CStr(dstArr(i, 1)) = CStr(dptArr(j, 3)) And dstArr(i, 42) = dptArr(j, 2) Then
- 'если первые торги
- If dptArr(j, 7) = 1 And dptArr(j, 8) = 0 Then
- .Cells(i + 1, 7).Value = dpt.Cells(j + 1, 2).Value 'номер торгов
- 'если повторные торги
- ElseIf dptArr(j, 7) = 1 And dptArr(j, 8) = 10 Then
- .Cells(i + 1, 17).Value = dpt.Cells(j + 1, 2).Value 'номер повторных торгов
- 'если ППП
- ElseIf dptArr(j, 7) > 1 Then
- .Cells(i + 1, 27).Value = dpt.Cells(j + 1, 2).Value 'номер торгов ППП
- End If
- End If
- j = j + 1
- Loop
- i = i + 1
- Loop
- End With
- Set dpt = Nothing
Решение задачи: «Не работает условие IF»
textual
Листинг программы
- If dptArr(j, 7) = 1 And dptArr(j, 8) = 0 Then .Cells(i + 1, 7).Value = dpt.Cells(j + 1, 2).Value 'номер торгов
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д