Копировать и вставлять строки, соответствующие условию, когда кнопка нажата в другой книге

Я не эксперт по 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")
Другие вопросы по тегам