У Марти есть серия рабочих тетрадей, некоторые из которых содержат до 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 [Вставка графики на несколько листов].