测试连接到链接的图片

时间:2013-07-03 12:03:42

标签: excel vba

所以我现在已经在这个论坛上搜索了很长一段时间,也在其他网站上搜索,但我找不到解决这个问题的方法。

所以我得到的一个小问题是,我有一个很长的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语句?非常感谢任何帮助。

2 个答案:

答案 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