此宏的工作原理是选择 2 个对象。先前已命名的对象称为“A”,另一个对象的名称是“随机”。我希望通过这个宏,我可以更改所选对象的名称。如果找到名为 A 的对象,则将另一个对象重命名为“1”。同样,如果找到名为 B 的对象,则将另一个对象重命名为“2”,依此类推
Sub ChangeObjectName()
Dim sr As ShapeRange
Dim s As Shape
Set sr = ActiveSelectionRange
If sr.Count <> 2 Then Exit Sub
For Each s In sr
If s.Name <> "A" Then
s.Name = "1"
End If
Next s
End Sub
我尝试将脚本开发成这样,
Sub ChangeObjectName()
Dim sr As ShapeRange
Dim s As Shape
Set sr = ActiveSelectionRange
If sr.Count <> 2 Then Exit Sub
For Each s In sr
If s.Name <> "A" Then
s.Name = "1"
If s.Name <> "B" Then
s.Name = "2"
If s.Name <> "C" Then
s.Name = "3"
If s.Name <> "D" Then
s.Name = "4"
End If
Next s
End Sub
我还尝试循环上下文,但遇到了对象名称未按预期更改的问题。如果有人可以帮助我解决这个脚本,我将不胜感激。谢谢你。
Sub ChangeObjectName()
Dim sr As ShapeRange
Dim s As Shape, s2 As Shape, s1 As Shape
Const START_NAME = "A"
Const END_NAME = "D"
Set sr = ActiveSelectionRange
If sr.Count <> 2 Then Exit Sub
For Each s In sr
If Len(s.Name) = 1 And s.Name >= START_NAME And s.Name <= END_NAME Then
Set s1 = s
Else
Set s2 = s
End If
Next s
If s1 Is Nothing Or s2 Is Nothing Then
Exit Sub
Else
s2.Name = CStr(Asc(s1.Name) - 64)
End If
End Sub