将图形粘贴到多个工作表(Microsoft Excel)
马蒂(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的较早菜单界面找到此技巧的版本: