当您将图片插入 excel 工作表时,会自动获得图片 1、图片 2 等等......我有一个功能,当选择一张图片时,会在图片周围添加黑色边框。问题是,如果我在名为图片 1 的工作表上有两张图片,该函数将不知道在哪张图片 1 周围添加边框,因此可能会在错误选定的图像周围添加边框。
这是我在图像上添加边框的代码:
Private Function AddImageBorder(WhichSheet As String)
With ActiveWorkbook.Sheets(WhichSheet).Shapes(Selection.Name)
.Line.Weight = 5
.Line.Visible = msoTrue
End With
结束函数
答案1
我认为一个简单的解决方案是重命名您的图像。如何获得两个“Picture1”我无法理解,我不得不在 VBA 中重命名一个。无论如何,这里有一种方法可以对您的形状进行编号,这样就不会重叠 -
Sub NumberShapes()
Dim shp As Shape
Dim i As Long
i = 1
For Each shp In ActiveSheet.Shapes
shp.Name = "Picture" & i
i = i + 1
Next
End Sub
就我个人而言,我会采取不同的做法,首先确定它是什么。
Option Explicit
Public Sub NumberShapes()
Dim shp As Shape
Dim i As Long
i = 1
For Each shp In ActiveSheet.Shapes
If shp.Type = msoPicture Then
shp.Name = "Picture" & i
i = i + 1
ElseIf shp.Type = msoChart Then
shp.Name = "Chart" & i
i = i + 1
ElseIf shp.Type = msoTextBox Then
shp.Name = "Textbox" & i
i = i + 1
End If
Next
End Sub
使用此解决方案,您可以根据其用途来决定它们的名称类型是。