excel - 重命名或处理从其他工作表复制的图片
问题描述
我有以下代码:
Worksheets("Sheet2").Shapes("1").Copy
ActiveSheet.Paste Range("A1")
Worksheets("Sheet1").Shapes("1").IncrementLeft 100
代码将名为“1”的图像从 sheet2 复制并粘贴到 sheet1,然后移动它。问题是,我想多次复制同一张图像并对它们做不同的事情(例如,一个向右移动而另一个向下移动)。
但是,所有复制的图片共享相同的名称(其原始名称“1”),并且只有粘贴的第一张图片响应“IncrementLeft”等命令。事实上,如果我手动删除复制的第一张图片,第二张就会开始响应,所以感觉后面的图片名称不同。
我想知道粘贴时是否有任何方法可以重命名或选择图片,粘贴后我不在乎图片的名称。或者还有其他解决方案吗?
解决方案
如果您在粘贴后不关心图片的名称,则可以完全忽略使用名称。让我们假设粘贴到工作表 1 的图片是当时工作表上唯一的图片。然后,您可以在没有引号的情况下引用它们:
Worksheets("Sheet2").Shapes("1").Copy
Worksheets("Sheet1").Paste Worksheets("Sheet1").Range("A1")
Worksheets("Sheet1").Shapes(1).IncrementLeft 100
Worksheets("Sheet1").Paste Worksheets("Sheet1").Range("A1")
Worksheets("Sheet1").Shapes(2).IncrementLeft 200
每次粘贴另一张图片时,将其Shapes(x)
加一,新粘贴的形状将成为目标,因为您现在通过形状编号而不是名称来定位它们。
仅供参考,如果需要,您也可以更改名称:
Worksheets("Sheet1").Shapes(2).Name = "3"
同样正如 Chronocidal 在评论中出色地指出的那样,使用Shapes(Worksheets("Sheet1").Shapes.count)
将计算该工作表上的形状,然后参考最后一个。所以它永远是你刚刚添加的那个。如果您已经有多个形状,或者不能(被打扰)保持计数,这将非常有用。
推荐阅读
- python - 比较因子变量的每个级别的数据帧的两个连续行的值 - Python Pandas
- excel - 以毫秒为单位的 Excel VBA Ontime 函数
- python - 神经影像学“nipype”插件不起作用
- git - git pull feature branch 在使用 master 分支重新设置功能分支之后将恢复重新设置更改
- pyomo - 启动 Temoa 时运行 Pyomo 的问题
- java - Linux 上的 JavaFX CSS 图像加载
- node.js - MongooseDB Node js 填充不起作用
- apache - 不需要 ip 不会阻止 apache centos 服务器上的 IP 地址
- python - 通过为查询提供发布日期和时间来进行 Twitter 抓取
- c# - 当用户使用 MS Graph 在 Azure AD 上更新时获取通知