如何将工作簿中的所有图形向左移动,除了其中一个之外

问题描述 投票:0回答:1

我试图让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

谢谢!

excel-vba
1个回答
0
投票

首先,在循环浏览该工作表的绘图对象之前,没有必要激活该工作表。 其次,你应该使用对象变量 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
© www.soinside.com 2019 - 2024. All rights reserved.