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

Я не эксперт по 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

Это работает идеально для меня, и чтобы сделать шаг вперед, я хотел бы иметь возможность выполнить это из другой книги, оставив макрос целевой книги свободным.

Проблема в том, что рабочая книга, в которой я хочу запустить макрос, будет общей, и я не думаю, что вы можете запускать макросы.


person Amra    schedule 31.10.2011    source источник
comment
Вы действительно должны хотя бы попытаться сделать это самостоятельно, а затем опубликовать здесь, когда застрянете, вместо того, чтобы просто спрашивать код.   -  person Reafidy    schedule 31.10.2011
comment
@Reafidy: я согласен, и я пытаюсь самостоятельно читать фрагменты кода здесь и там, но я пока не смог ничего сочинить сам, и я уже неделю пытаюсь разобраться самостоятельно. теперь, так что я хотя бы попросить помощи здесь. Я все равно работаю над собой. Спасибо за ваш комментарий.   -  person Amra    schedule 31.10.2011


Ответы (1)


Просто измените свои ссылки на нужную книгу, и она должна работать нормально (пока открыта другая книга, хотя, если это не так, вы также можете открыть ее из кода.

Ссылка:

Set NewExecSummary = Workbooks("TargetWorkbook").Sheets("New Exec Summary")
person Lance Roberts    schedule 01.11.2011