Как переместить все формы в рабочую книгу влево, кроме одной из них - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь заставить 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

Спасибо!

1 Ответ

0 голосов
/ 26 апреля 2020

Во-первых, нет необходимости активировать лист перед циклом прорисовки объектов для этого листа. Во-вторых, вы должны использовать переменную объекта SP, чтобы установить свойство Left. Поэтому, предполагая, что целевая рабочая книга является активной рабочей книгой, попробуйте следующее ...

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...