Я довольно новичок в VBA, поэтому, пожалуйста, извините меня, если это простой вопрос! Я создал шаблонный отчет (под названием «Client_Name»), который я хочу заполнить для каждого клиента - по сути, все это включает в себя выбор клиента в фильтре отчетов сводной таблицы и копирование значений данных сводной таблицы в шаблон. Для автоматизации этого я создал следующий код, чтобы дублировать шаблон и переименовать его для клиента, выбранного в сводной таблице в настоящее время:VBA Worksheet Select Dependent On Cell Value
Sheet_Name_To_Create = Sheets("Pivot").Range("B1").Value
Sheets("Client_Name").Select
Sheets("Client_Name").Copy After:=Sheets(Sheets.Count)
Sheets(ActiveSheet.Name).Name = Sheet_Name_To_Create
Мой следующий шаг должен был бы вернуться к сводной таблицы («Стержень» рабочий лист) и скопировать данные на вновь созданный рабочий лист клиента. Однако имя рабочего листа, очевидно, будет отличаться для каждого клиента. Есть ли способ ссылаться на код VBA, чтобы выбрать рабочий лист, имя которого совпадает с именем клиента, отображаемого в отчетном фильтре сводных таблиц?
Спасибо за этот совет, хотя я бы не впадать в круговом ошибки при этом ActiveSheet является недавно дублируется шаблон, а затем переключается на сводную таблицу, когда я двигаюсь, чтобы скопировать данные? Поэтому, как только я переключился на лист Pivot, CopiedSheet (то есть ActiveSheet) теперь является самим Pivot-листом и не может быть перенаправлен на дублированный шаблон, который больше не является ActiveSheet! –
@ user2696883 'ActiveSheet' - это свойство, предоставляемое Excel. Он автоматически изменяется для отражения активации листа. В любой момент он содержит ссылку на лист. Вы копируете эту ссылку. Ваша копия не изменится автоматически. – GSerg