马蒂(Marty)拥有一系列工作簿,其中一些工作簿多达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_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9205)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: