我是 VBA 编码的新手。我尝试在 Excel 中按如下方式排列 3 张图片:
- 将所有选定的图片调整为相同尺寸。
- 将选定的 3 张图片以 188 点为间距排列成 1 行。
我的问题是我不知道如何区分图片。使用我的代码,图片会重叠。这是我的代码:
Sub ArrangePics()
' ArrangePics Macro
Dim objPic As Object
For Each objPic In ActiveSheet.Pictures
With objPic.ShapeRange
.LockAspectRatio = False
.Height = Application.CentimetersToPoints(4.1)
.Width = Application.CentimetersToPoints(5.1)
End With
Next
Selection.ShapeRange.Distribute msoDistributeHorizontally, msoFalse
Dim intX As Integer
intX = 1
Dim i As Long
For i = 0 To 2 Step 1
Selection.ShapeRange.Left = intX * 188
Next
' Selection.Cut
End Sub
我将非常感激您的帮助。谢谢。
迈克尔·斯拉克
答案1
我相信这会解决问题。
Sub ArrangePics()
' ArrangePics Macro
Dim dNextPos As Double, _
objPic As Object
For Each objPic In ActiveSheet.Pictures
With objPic.ShapeRange
.LockAspectRatio = False
.Height = Application.CentimetersToPoints(4.1)
.Width = Application.CentimetersToPoints(5.1)
.Left = dNextPos
dNextPos = .Left + .Width + 188
End With
Next
' Selection.ShapeRange.Distribute msoDistributeHorizontally, msoFalse
End Sub