Несоответствие типа в моем кодировании при выполнении функции do while

#excel #vba

#excel #vba

Вопрос:

Я получаю несоответствие типов в своем коде, но я не знаю, в чем проблема. Я думаю, что это связано с рабочим листом rework, но я просто не уверен. Я делаю что-то не так? Я новичок в Excel vba, поэтому я не знаю

 Sub ending_test()

Z = 3
Do While Not IsEmpty(Worksheets("Raw Data").Cells(Z, 2))
  y = 4
  Do While Not IsEmpty(Worksheets("Rework").Cells(y, 1))
    If Worksheets("Raw Data").Cells(Z, 2) = Worksheets("Rework").Cells(y, 3) And
       Worksheets("Raw Data").Cells(Z, 3) = Worksheets("Rework").Cells(y, 4) And
       Worksheets("Raw Data").Cells(Z, 4) = Worksheets("Rework").Cells(y, 6) 
    Then
      Worksheets("Rework").Cells(y, 12).ClearContents
      Worksheets("Rework").Cells(y, 12) = Worksheets("Raw data").Cells(2, 7)
    End If
    y = y   1
  Loop

  Z = Z   1
Loop
End Sub
  

Комментарии:

1. Во-первых: код легче читать / устранять неполадки, если он правильно отформатирован. Второе: в какой строке происходит ошибка?

Ответ №1:

Всякий раз, когда вы разбиваете команду на отдельные строки, вы должны указывать ее, указав «_» в конце строки. Не уверен, что именно это вызывает ошибку…

Итак, для вашего оператора if это будет выглядеть так

 If Worksheets("Raw Data").Cells(Z, 2) = Worksheets("Rework").Cells(y, 3) _
And Worksheets("Raw Data").Cells(Z, 3) = Worksheets("Rework").Cells(y, 4) _
And Worksheets("Raw Data").Cells(Z, 4) = Worksheets("Rework").Cells(y, 6) _
Then
  

Если вы предоставите образцы данных, это было бы здорово.