为什么你需要有时select对象来避免“对象不支持这个属性或方法”
我注意到,我有时会得到错误:
运行时错误“438”:
对象不支持这个属性或方法
在Excel VBA中,但如果我打电话。 .select
select对象,然后这个错误消失。
例如,我最近想要改变工作表上一些链接图像的大小,并使用macroslogging器logging以下内容:
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
它再次运作。 但当然,我不应该select每个图片只是为了改变其Height
属性?
这在我的testing运行正常工作。
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