Цикл VBA Excel

#excel #vba #for-loop

Вопрос:

Как я могу поместить этот код в цикл? Например, запустите cylce в ячейке A3, завершите цикл в ячейке A100.

 Sub CenterImages()
        With ActiveSheet.Shapes("Picture 1")
            .Top = Range("A1").Top   (Range("A1").Height - .Height) / 2
            .Left = Range("A1").Left   (Range("A1").Width - .Width) / 2
        End With
End Sub
 

Ответ №1:

Сделай что-нибудь в этом роде:

 Option Explicit

Public Sub CenterImages()
    Dim i As Long
    For i = 3 To 100
        CenterImage i
    Next i
End Sub

Public Sub CenterImage(ByVal Index As Long)
    With ActiveSheet.Shapes("Picture " amp; Index)
        .Top = Range("A" amp; Index).Top   (Range("A" amp; Index).Height - .Height) / 2
        .Left = Range("A" amp; Index).Left   (Range("A" amp; Index).Width - .Width) / 2
    End With
End Sub
 

Сделайте свой код универсальным, используя Index затем вызовите процедуру в цикле от 3 до 100, указав этот индекс.