You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

加载产品图片时出现File not found错误,替代图无法正常显示

解决VBA点击产品名称时替代图无法正常显示的问题

问题根源

原代码存在两个核心问题:

  • 判断条件错误:If strFile = ""永远不会触发,因为strFile是拼接生成的路径字符串,即便对应图片不存在,路径本身也不为空。
  • 未检查文件实际存在性:直接调用LoadPicture()加载不存在的文件,会抛出「File not found」错误。

修正后的代码

Private Sub ListBox1_Click()
    Dim ProductName As String
    Dim iPath As String
    Dim iPathNA As String
    
    ProductName = Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
    iPath = ThisWorkbook.Path & "\Item Images\" & ProductName & ".JPG"
    iPathNA = ThisWorkbook.Path & "\Item Images\NA.jpg"
    
    ' 先检查产品图片是否存在
    If Dir(iPath) <> "" Then
        Image2.Picture = LoadPicture(iPath)
    Else
        ' 检查替代图是否存在,避免替代图也找不到的情况
        If Dir(iPathNA) <> "" Then
            Image2.Picture = LoadPicture(iPathNA)
        Else
            ' 可选:如果替代图也不存在,清空图片或给出提示
            Image2.Picture = LoadPicture("")
            MsgBox "替代图片NA.jpg未找到,请检查路径"
        End If
    End If
End Sub

关键修改说明

  • 使用Dir()函数判断文件是否存在:Dir(文件路径)返回空字符串表示文件不存在,反之则存在。
  • 调整逻辑顺序:优先加载产品图,不存在时再加载替代图,同时增加对替代图本身的存在性检查,避免替代图丢失时再次报错。
  • 新增兜底处理:如果替代图也找不到,清空图片并弹出提示,提升容错性。

内容的提问来源于stack exchange,提问作者Khola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 11:11:15