我注意到有时会出现错误:
运行时错误“ 438”:
对象不支持此属性或方法
在Excel VBA中,但是如果我先调用.select
该对象,则该错误消失。
例如,最近我想更改工作表上某些链接图像的大小,并使用宏记录器记录了以下内容:
ActiveSheet.Shapes.Range(Array("Picture 3")).Select
Selection.ShapeRange.Height = 303.12
此代码显然可以正常工作。然后,我将代码更改如下:
Dim sheetReport as Worksheet
Set sheetReport = Worksheets("Report")
With sheetReport
Dim pictureNumber As Long
For pictureNumber 1 to 3
.Shapes.Range("Picture " & pictureNumber).ShapeRange.Height = 303.12
Next pictureNumber
End With
现在我得到了上面提到的错误,但是如果我随后将此代码更改为
Dim sheetReport as Worksheet
Set sheetReport = Worksheets("Report")
With sheetReport
Dim pictureNumber As Long
For pictureNumber 1 to 3
.Shapes.Range("Picture " & pictureNumber).Select
Selection.ShapeRange.Height = 303.12
Next pictureNumber
End With
它再次起作用。但是,我当然不必仅选择每张图片来更改其Height
属性吗?
在我的测试运行中,这可以正常工作。
Sub PictureResizing()
Dim sheetReport As Worksheet
Set sheetReport = ThisWorkbook.Worksheets("Report")
Dim pictureNumber As Long
With sheetReport
For pictureNumber = 1 To 3
.Shapes("Picture " & pictureNumber).Height = 303.12
Next pictureNumber
End With
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句