我目前正在寻找一个简单的excel工作簿填充几十个模板表格,我们使用(每个工作表一个)。作为其中的一部分,我希望在前面有一个“主”页,它可以按下宏复制信息到所有其他工作表中。
为细胞做这件事很容易,但我在复制任何标识时都取得了有限的成功。我的意图是将我公司的徽标放在表单的右上角,任何客户标识都在左上角,点击一个按钮,2-3个徽标就会出现在所有其他工作表上。
我成功地用以下代码按名称重新定位了这些徽标:
For Each Shape In Worksheet.Shapes
If Shape.Name = "OurLogo" Then
Shape.Left = (Wb1.Sheets("Inputs").Shapes("Our Logo").Left - 1)
Shape.Top = (Wb1.Sheets("Inputs").Shapes("Our Logo").Top - 1)
End If
Next Shape
其中,我们的标志是原始标志和OurLogo是复制和命名的标志。
但是,这意味着我需要已经复制到每个工作簿中的正确单元格中的徽标具有正确的名称。我已经成功地在所有工作表上复制了徽标,但是无法像我所做的那样重命名它们,它们只是被指定为"Picture#“作为一个名称。我尝试在类似的“每个”宏中添加一个重命名,以便将其复制到所有工作表中,但这只重命名了一个粘贴到活动工作表中的徽标,而没有在其余工作表中重命名任何一个。
任何建议,如何复制和重命名这些图片到多个工作表,同时也重命名他们将不胜感激。或者,我将接受第一个复制和用第二个宏重命名的方法。
提前谢谢你的帮助。
我以前尝试过如何将形状复制到另一个工作表(不是作为图片)?方法,但设置目标单元格只是将徽标转储在左上角,当我希望它处于中心位置时,它看起来非常混乱--因此根据原始徽标的位置重新定位宏。该链接下的方法还将徽标重命名为"Picture#",从而创建了重命名要求。
发布于 2015-03-20 16:45:21
我用一个形状做了这件事
Sub CopyAndRenameShape()
Dim sh As Shape
Dim wks As Worksheet
Set sh = Sheet1.Shapes("shtTest")
For Each wks In ThisWorkbook.Worksheets
If wks.Name <> ActiveSheet.Name Then
sh.Name = wks.Name & "_" & sh.Name
sh.Copy
wks.Paste
End If
Next wks
sh.Name = "shtTest"
End Sub
发布于 2015-03-20 16:35:56
当谷歌搜索"Excel形状副本“时,第二个结果指向了SE的一个巧妙的问题。
How to copy a Shape to another worksheet (not as a picture)?
很肯定这会解决你的问题。
https://stackoverflow.com/questions/29171270
复制相似问题