首页 > 解决方案 > 使用 Excel VBA 删除指定图像

问题描述

继续本期提出的操作:

通过即时调整大小和调整在纸张之间复制图像

现在我想为这些新复制的图像设置一个自动点击删除选项。

在此处输入图像描述

为此,我编写了简单的宏:

  Sub Signature_remove()
  '
  ' Signature_remove Macro
  '


   ActiveSheet.Shapes.Range(Array("Picture 49")).Select
   Selection.Delete
   Sheets("BoQ Civils").Select
   ActiveSheet.Shapes.Range(Array("Picture 72")).Select
   Selection.Delete
 End Sub

因为它适用于 2 张纸。不幸的是,这不是明智的想法,因为它返回数组中的图片 ID,随着过程的重复,这些 ID 会发生变化。反过来,我不能真正使用

          Sheets("BoQ Civils").Shapes(Sheets("BoQ Civils").Shapes.Count)

因为我害怕放置在这张纸上的所有图像都会被删除。

有什么办法可以快速删除这些图片吗?

标签: excelvba

解决方案


让我分解一下:

Sheets("BoQ Civils").Shapes(Sheets("BoQ Civils").Shapes.Count)

Sheets("BoQ Civils").Shapes.Count将返回您在 sheet 中拥有的图像数量(一般为形状)BoQ Civils,因此Sheets("BoQ Civils").Shapes(Sheets("BoQ Civils").Shapes.Count)将返回最后一个索引的图像,即最后添加的图像。

反过来,你是安全的 - 你不想删除工作表中的所有图片,只删除最后一张。

据我了解,这就是你所追求的。


推荐阅读