Из некоторого образца кода VBA, который я попытался изменить, я стремлюсь изучить Excel с помощью VBA и надеюсь, что я получу рекомендации по выравниванию изображений по горизонтали, например, 5 изображений в одной строке, а затем начинается новая строка и повторяется. На данный момент я использую жесткое значение 5, просто чтобы это произошло один раз, хотя результаты не такие, как я ожидал. Вот два шага решения проблемы.
- Кажется, берется первое изображение, а затем сразу создается новая строка
- Затем вертикально выравнивает два изображения в разных новых строках
Я подумал, что нужен дополнительный счетчик для отслеживания, чтобы макрос знал, когда вводить новую строку.
Sub pictureCode()
'Automatically space and align shapes
Dim shp As Shape
Dim counter As Long
Dim dTop As Double
Dim dLeft As Double
Dim dHeight As Double
Const dSPACE As Double = 50
'Set variables
counter = 1
ActiveSheet.Shapes.SelectAll
'Loop through selected shapes
For Each shp In Selection.ShapeRange
With shp
'If not first shape then move it below previous shape and align left.
If counter = 5 Then
.Top = dTop
.Left = dLeft + dWidth + dSPACE
Else
.Top = dTop + dHeight + dSPACE
.Left = dLeft
End If
'Store properties of shape for use in moving next shape in the collection.
dTop = .Top
dLeft = .Left
dHeight = .Height
End With
'Add to shape counter
counter = counter + 1
Next shp
End Sub