#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
Если вы предоставите образцы данных, это было бы здорово.