Не работает условие IF - VBA

Узнай цену своей работы

Формулировка задачи:

Помогите, плиииз, советом: я применила код к своей базе данных. он мне ищет номера торгов. Но почему-то в определённый момент затирает результаты поиска первых номеров. то есть сначала он вставляет первый номер (куда надо), потом находит второй (записывает его куда надо), а первый при этом удаляет. Хотя при поиске номера ячеек не пересекаются. Подозреваю, что пишу в If что-то не так.
Листинг программы
  1. Dim dpt As Worksheet, i As Long, j As Long, m As Long, n As Long
  2. Dim dptArr(), dstArr()
  3. Application.ScreenUpdating = False
  4. Set dpt = Worksheets("DannyePoTorgam")
  5. With Worksheets("DannyePoTorgam")
  6. m = .Cells(.Rows.Count, 1).End(xlUp).Row
  7. dptArr() = .Range(.Cells(2, 2), .Cells(m, 13)).Value
  8. End With
  9. With Worksheets("Отчёт")
  10. n = .Cells(.Rows.Count, 1).End(xlUp).Row
  11. dstArr() = .Range(.Cells(2, 1), .Cells(n, 42)).Value
  12. i = 1
  13. Do While i <= n
  14. j = 1
  15. Do While j <= m
  16. 'если совпадает наименование лота и номер лота
  17. If CStr(dstArr(i, 1)) = CStr(dptArr(j, 3)) And dstArr(i, 42) = dptArr(j, 2) Then
  18. 'если первые торги
  19. If dptArr(j, 7) = 1 And dptArr(j, 8) = 0 Then
  20. .Cells(i + 1, 7).Value = dpt.Cells(j + 1, 2).Value 'номер торгов
  21. 'если повторные торги
  22. ElseIf dptArr(j, 7) = 1 And dptArr(j, 8) = 10 Then
  23. .Cells(i + 1, 17).Value = dpt.Cells(j + 1, 2).Value 'номер повторных торгов
  24. 'если ППП
  25. ElseIf dptArr(j, 7) > 1 Then
  26. .Cells(i + 1, 27).Value = dpt.Cells(j + 1, 2).Value 'номер торгов ППП
  27. End If
  28. End If
  29. j = j + 1
  30. Loop
  31. i = i + 1
  32. Loop
  33. End With
  34. Set dpt = Nothing

Решение задачи: «Не работает условие IF»

textual
Листинг программы
  1. If dptArr(j, 7) = 1 And dptArr(j, 8) = 0 Then .Cells(i + 1, 7).Value = dpt.Cells(j + 1, 2).Value 'номер торгов

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут