Копировать и вставлять строки, соответствующие условию, когда кнопка нажата в другой книге
Я не эксперт по VBA, так как недавно начал изучать это.
Интересно, возможно ли следующее.
У меня есть несколько рабочих тетрадей с тремя листами (Старый, Сводный, Новый).
Условие состоит в том, что все ячейки в столбце D со значением H или M на листе с именем New будут указывать, что всю строку необходимо будет скопировать на лист с именем Summary в той же книге.
Это упомянутое выше должно произойти, когда нажата кнопка из другой рабочей книги, и в идеале имя файла / рабочей книги должно быть изменяемым, чтобы я мог выбрать, какую рабочую книгу я хочу запустить в макросе.
В идеале в рабочей книге с данными не должно быть макросов, все макросы следует запускать из второй книги с помощью кнопки.
Я был бы признателен за пример кода с комментариями (чтобы я мог узнать), если это возможно и не слишком сложно.
Пожалуйста, не стесняйтесь задавать любые вопросы, если что-то неясно...
ОБНОВИТЬ
Вот макрос, который мне удается составить, глядя на разные коды
Sub CopyPaste()
Set NewWorkPlan = Sheets("New Workplan")
Set NewExecSummary = Sheets("New Exec Summary")
Dim d
Dim j
d = 1
j = 2
Do Until j = 200
If NewWorkPlan.Range("D" & j) = "M" Or NewWorkPlan.Range("D" & j) = "H" Then
d = d + 1
NewExecSummary.Rows(d).Value = NewWorkPlan.Rows(j).Value
End If
j = j + 1
'MsgBox (j)
Loop
End Sub
Это прекрасно работает для меня, и чтобы сделать шаг вперед, я бы хотел выполнить это из другой книги, оставив целевой макрос книги свободным.
Проблема в том, что рабочая книга, которую я хочу запустить, будет опубликована, и я не думаю, что вы можете запускать макросы.
1 ответ
Просто измените ссылки на нужную книгу, и она должна работать нормально (если открыта другая книга, но если это не так, вы можете открыть ее и из кода.
Ссылка:
Set NewExecSummary = Workbooks("TargetWorkbook").Sheets("New Exec Summary")