繁体   English   中英

Excel VBA:FOR…出错,转到下一个

[英]Excel VBA: FOR…on error goto NEXT

我使用For ... Next循环将图片插入Excel工作表。 图片的名称来自B列。有时,硬盘上没有对应的图片。 在这种情况下,Excel将抛出错误消息并停止运行代码。 首先,我尝试了“ On Error Resume Next”。 这不好,因为执行了发生错误后的所有代码。 因此,我尝试使用以下代码来避免未找到图片时运行代码。 但是,这仅捕获第一个错误。 当第二次找不到图片时,Excel仍会引发错误消息(“无法获取图片类的insert属性”)。 我想要的是如果发生错误,Excel将跳过其余代码,转到下一种情况。 如何才能做到这一点? 谢谢你的帮助。

......
On Error GoTo gotoNext
For Each cell In rng
......
Set p = Workbooks(ActiveSheet.Parent.Name).Sheets(Sheet_to_Insert_Picture).Pictures.Insert(Path_Prefix & "\" & _
Replace(cell.Value, "/", "-") & ".jpg") 'when the picture is not found, Excel throws an error
......
gotoNext:
Err.Clear
Next

您可以使用Dir命令快速检查图像文件的存在。 如果找到,它将返回文件名(因此返回的字符串长度大于零)。

For Each cell In rng
  if cbool(len(dir(Path_Prefix & "\" & Replace(cell.Value, "/", "-") & ".jpg"))) then
    Set p = Workbooks(ActiveSheet.Parent.Name).Sheets(Sheet_to_Insert_Picture).Pictures.Insert(Path_Prefix & "\" & Replace(cell.Value, "/", "-") & ".jpg")
  end if
next cell

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM