0

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

所以我遇到的一个小问题是,我有一个很长的 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”中,因为它找不到要插入的图片。

非常感谢。亲切的问候克里斯

//编辑我可能有一个想法,我不知道是否可能,但是它指向的页面,当图片不存在时,它显示以下“无法找到/part/of/thelink/”可以一个也许使用代码来查看是否显示此消息,也许检查一下?如果是这样,那将如何工作?:) 也许可以将它添加到顶部的 if 语句中,该语句已经对此子任务进行了测试。

//编辑有人知道吗?:S 也许我在上面的编辑中发布的内容可以工作?:S 是否可以检查 msgbox 是否显示某些内容,但反过来,如果 msgbox 不等于以下内容,请执行此操作。如果这能奏效那就太好了!:S 或者也许不是尝试使用 GetShapeFromWeb 子中的 if 语句尝试错误命令?任何帮助是极大的赞赏。

4

2 回答 2

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
于 2013-07-03T12:43:27.577 回答
0

这应该有效。但是,您写道,您尝试了几种 On Error 方法均未成功……这对您有什么用?

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
于 2013-07-03T12:41:16.510 回答