Я печатаю много графиков excel, используя vba. На данный момент у меня есть около 35 листов, которые я печатаю, поэтому мне интересно, есть ли скрипт, который легче изменить, чем тот, с которым я сейчас работаю.Более эффективный способ написать этот скрипт
Sheets("Euro Graph").Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.PlotArea.Select
ActiveChart.PageSetup.RightHeader = "nominal LCU"
ActiveChart.PageSetup.RightFooter = "&D &T"
ActiveChart.PageSetup.CenterFooter = "&A"
ActiveChart.PageSetup.LeftFooter = "&Z&F"
Selection.Width = 921
Selection.Left = 23
Selection.Top = 61
Selection.Height = 550
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Так что это работает отлично. Для каждой диаграммы, которую я хочу напечатать, я сначала выбираю лист, а затем активирую график, который я хочу напечатать, обратившись к его номеру диаграммы. Есть ли эффективный способ изменения любых спецификаций печати диаграмм (например, изменение заголовка/нижнего колонтитула) без необходимости вручную изменять каждый блок кода, который я использую для каждой диаграммы?
редактирование: Я мог бы удалить много линий и просто
Sheets("Euro Graph").Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.PageSetup.RightHeader = "nominal LCU"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Но я все же хотел бы иметь возможность менять «номинальной LCU» и это влияет на весь мой код.
Есть более чем 1 график на одном листе? Как вы определяете «RightHeader», который, кажется, является единственным переменным текстом? Являются ли размеры PlotArea неизменными? \ –
Да. У меня примерно 3-4 графика на лист. RightHeader является сложным, поскольку на листе обычно будет 3 диаграммы, одна с номинальным LCU, реальным долларом США и номинальным долларом США. У меня есть модуль для каждого типа диаграммы. А размеры участка всегда одинаковы. – user2516746
Содержит ли индекс диаграммы или название диаграммы, какой из трех типов он имеет? Например, номинальный LCU всегда равен 1 или всегда называется или называется? (Если нет, вам следует подумать об этом). Если это так, тогда это будет довольно легко закодировать. Собственно, если вы хотите придерживаться трех модулей, я могу сделать это сейчас. –