我试图让VBA将我工作簿所有工作表中的所有形状向左移动,除了其中的一个形状。我能够进行编码,使所有形状向左移动,但当我试图添加异常时,它不起作用。谁能帮我解决这个问题?这是我做的编码(我刚开始使用VBA)。
Sub Macro1()
Dim ws As Worksheet
Dim SP As Object
Application.ScreenUpdating = False
For Each ws In Sheets
ws.Activate
For Each SP In ActiveSheet.DrawingObjects
If SP.Name <> "Rectangle 10" Then
Selection.Left = 100
End If
Next
Next
End Sub
谢谢!
首先,在循环浏览该工作表的绘图对象之前,没有必要激活该工作表。 其次,你应该使用对象变量 SP
来设置左属性。 因此,假设目标工作簿是活动工作簿,请尝试以下操作...
Sub Macro1()
Dim ws As Worksheet
Dim SP As Object
Application.ScreenUpdating = False
For Each ws In Worksheets
For Each SP In ws.DrawingObjects
If SP.Name <> "Rectangle 10" Then
SP.Left = 100
End If
Next
Next
Application.ScreenUpdating = True
End Sub