#vba #if-statement #copy #multiple-columns #rows
#vba #if-оператор #Копировать #несколько столбцов #строки
Вопрос:
У меня нулевой опыт работы с VBA. Я пытаюсь использовать оператор IF для соответствия двум критериям в строках на листе с надписью Master. критерии таковы: если столбец D = «Активный» и столбец E = «Испанский», я хочу скопировать эту строку на лист с надписью «Испанский», но я не хочу, чтобы столбцы D и E копировались на испанский лист.
Вот над чем я работаю, но я продолжаю получать ошибку компиляции. Что я делаю не так?
Sub TransferValues()
Dim Emp1a As String, Emp1b As String
With Worksheet("Sheet1")
If .Range("D2:D30") = "Active" And .Range("E2:E30") = "Spanish"
Emp1a = .Range("B2:C30")
Emp1b = .Range("F2:I30")
End With
Sheet2.Range("B2:C30") = Emp1a
Sheet2.Range ("D2:G30") - Emp1b
Debug.Print Emp1a
Debug.Print Emp1b
End Sub
Ответ №1:
Для вашего оператора if вы, похоже, используете блок, потому что у вас есть две вещи, которые вы хотите выполнить в строке после, поэтому синтаксис
if <condition> then
<statements for true>
else (optionally)
<statements for false> (optionally)
end if
итак, вам нужно «then» в конце строки if и «end if» в строке перед end with .
В «Sheet2.Range («D2: G30″) — Emp1b» вы имели в виду использовать минус, а не =?
Не могли бы вы опубликовать ошибку и номер строки, в которой она происходит?
Комментарии:
1. Это была опечатка, означавшая, что нужно поставить «=»
2. Спасибо за вашу помощь. Я попробую это. Есть идеи о том, как настроить его на автоматический запуск при добавлении новой строки?