所以我现在已经在这个论坛上搜索了很长一段时间,也在其他网站上搜索,但我找不到解决这个问题的方法。
所以我得到的一个小问题是,我有一个很长的Excel电子表格,有许多不同的ID或数字,无论你想叫什么。从这些ID中我创建了一个自定义链接,需要将它们指向特定图像,然后将其粘贴到此电子表格中的特定单元格中。请注意,我确实需要此代码,因此电子表格大约是9300行/行。现在的问题是并非每个id都附加了一个图像,这意味着某些链接不起作用(没有图像,但也没有文本基本上是空页)。有没有办法我可以让代码通过它,这样它就会忽略生成的错误1004,这基本上总是告诉我他找不到东西并且会在那时停止。
我是VBA的大菜鸟,所以请在回答时不要使用复杂的语言。我将粘贴下面的代码,但链接是保密的,所以我将用“链接”或类似的东西替换链接。我尝试了几种On Error方法,但是错误再次出现,或者Excel崩溃了,但是这里是没有任何修改的工作代码来删除此错误。提前感谢所有的帮助。
Sub Test()
I = 0
For I = 5 To 9373
If Tabelle2.Cells(I, 9) = "bekannt" Then
Call GetShapeFromWeb("Part 1 of the link" & Tabelle2.Cells(I, 10).Value & "Part 2 of the link", Tabelle2.Cells(I, 13))
End If
Next I
End Sub
Sub GetShapeFromWeb(strShpUrl As String, rngTarget As Range)
Dim shp As Shape
With rngTarget
With .Parent
.Pictures.Insert strShpUrl 'Error Occurs here
Set shp = .Shapes(.Shapes.count)
End With
shp.Left = .Left
shp.Top = .Top
End With
Set shp = Nothing
End Sub
最后要注意的是,有些词是德语,因为我是德语,使用德语变量,链接或电子表格。我正在使用excel 2007.错误发生在以下行“.Pictures.Insert strShpUrl”中,因为它无法找到要插入的图片。
Thansk很多。 亲切的问候 克里斯
// EDIT 我可能有一个想法,我不知道它是否可能,但它指向的页面,当图片不存在时,它显示以下“无法找到/部分/链接/” 可能有人可能会使用代码来查看是否显示此消息,并可能检查该消息?如果是这样,那将如何运作? :)也许它可以添加到顶部的if语句中,该语句已经为此子任务进行了测试。
// EDIT 有人有点想法吗? :S也许我在编辑中上面发布的内容可以工作? :S是否可以检查msgbox是否显示某些内容,但反过来如此,如果msgbox不等于以下内容,请执行此操作。如果这可行,那就太好了! :S或者也许不是尝试使用错误命令尝试使用GetShapeFromWeb子中的if语句?非常感谢任何帮助。
答案 0 :(得分:0)
这应该有效。但是你写道,你试过几次On Error Methods失败了......这对你来说是什么?
Sub GetShapeFromWeb(strShpUrl As String, rngTarget As Range)
Dim shp As Shape
Dim Er As Long: Er = 0
On Error GoTo gswError
With rngTarget
With .Parent
.Pictures.Insert strShpUrl
If Er <> 0 Then Exit Sub
Set shp = .Shapes(.Shapes.Count)
End With
shp.Left = .Left
shp.Top = .Top
End With
Set shp = Nothing
Exit Sub
gswError:
Er = Err
Resume Next
End Sub
答案 1 :(得分:0)
你试过GetShapeFromWeb子,以这种方式放置On Error语句:
Sub GetShapeFromWeb(strShpUrl As String, rngTarget As Range)
Dim shp As Shape
On Error GoTo Err1 'inserting a picture from a blank link will cause an error... thus...
With rngTarget
With .Parent
.Pictures.Insert strShpUrl
Set shp = .Shapes(.Shapes.Count)
End With
shp.Left = .Left
shp.Top = .Top
End With
Err1: '...sidestep
Set shp = Nothing
End Sub