首页 > 解决方案 > 在 VBA 用户窗体中加载图片时出现运行时错误 91

问题描述

我收到以下代码的运行时错误 91...我不知道我犯了什么错误,但它不起作用。提前致谢。

Dim Pict As String
Dim ImgFileFormat As String

Dim img As Object

ImgFileFormat = _
"Image Files (*.bmp;*.gif;*.tif;*.jpg),*bmp;*gif;*.tif;*.jpg"


GetPict:
Pict = Application.GetOpenFilename(ImgFileFormat)

If Pict = "False" Then Exit Sub

'91 error here -v
Set img = ThisWorkbook.VBProject.VBComponents("UserForm10").Designer.Controls("Image3").Picture 

With img
    .LoadPicture (Pict)
    .PictureSizeMode = fmPictureSizeModeStretch
End With

标签: vbaexcel

解决方案


.Picture在此处从您的代码中删除该词:

`Set img = ThisWorkbook.VBProject.VBComponents("UserForm10").Designer.Controls("Image3").Picture`

这是因为.Picture它是 Image 的String属性,不应设置。请参阅:图片属性 MSDN

根据您在做什么,有不同的选择。如果您的代码在用户表单中,并且您没有遵循MVC 模式Label7,则在单击表单时,类似这样的操作会更改图片:

Private Sub Label7_Click()

    Dim img As Object
    Set img = Me.Controls("Image3")

    Dim picAddress As String
    picAddress = Application.GetOpenFilename
    img.Picture = LoadPicture(picAddress)

End Sub

推荐阅读