Вставка графики на несколько листов (Microsoft Excel)
У Марти есть серия рабочих тетрадей, некоторые из которых содержат до 50 рабочих листов. Ему нужно вставить изображение (логотип компании) в одно и то же место на каждом листе. Он попытался сделать это, выбрав все рабочие листы, а затем выполнив вставку, но, похоже, это не сработало на нескольких листах, как при обычном редактировании.
Марти прав; попытка вставить рисунок, когда у вас выбрано несколько листов, не работает. Когда вы пытаетесь, Excel сообщает вам, что не может сделать вставку, но если вы затем выберете только один лист, вы сможете вставить его довольно хорошо.
Вместо этого вам нужно использовать макрос для вставки. Предполагая, что рисунок уже был скопирован в буфер обмена, вы можете запустить макрос, например следующий:
Sub InsertLogo1() Dim shtSheet As Worksheet Application.ScreenUpdating = False For Each shtSheet In Worksheets With shtSheet .Activate .Range("A1").Select .Paste End With Next Set shtSheet = Nothing Application.ScreenUpdating = True End Sub
Макрос проходит через каждый рабочий лист в книге и вставляет рисунок в ячейку A1. Если вы хотите использовать другую ячейку, все, что вам нужно сделать, это изменить строку, которая выбирает ячейку.
Если вы не хотите заранее копировать графику в буфер обмена, вы можете использовать макрос, например следующий, чтобы вставить графику непосредственно из файла изображения:
Sub InsertLogo2() Dim strPath As String Dim shtSheet As Worksheet strPath = "C:\GraphicFolder\PictureName.bmp" For Each shtSheet In Worksheets shtSheet.Activate Range("A1").Select ActiveSheet.Pictures.Insert (strPath) Next shtSheet Set shtSheet = Nothing End Sub
Вы, конечно, можете изменить путь к графическому файлу и ячейку, в которую файл вставляется в рабочие листы. При желании вы можете использовать следующий вариант, который отображает стандартное диалоговое окно Windows для выбора изображения, которое вы хотите вставить:
Sub InsertLogo3() Dim strPath As Variant Dim shtSheet As Worksheet Dim sTemp As String ' Set the file type sTemp = "Graphics Files (.jpg; .bmp; .gif; .tif; *.png)" sTemp = sTemp & ", .jpg; .bmp; .gif; .tif; *.png" strPath = Application.GetOpenFilename(sTemp) If strPath <> False Then For Each shtSheet In Worksheets shtSheet.Activate Range("A1").Select ActiveSheet.Pictures.Insert (strPath) Next shtSheet Set shtSheet = Nothing End If End Sub
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (9205) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Pasting_a_Graphic_to_Multiple_Worksheets [Вставка графики на несколько листов]
.