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 に何かが表示されているかどうかを確認することは可能ですか?その逆です。それがうまくいくなら、それは素晴らしいことです!:S または、エラー コマンドを試す代わりに、GetShapeFromWeb サブ内の if ステートメントで試してみませんか? どんな助けでも大歓迎です。

4

2 に答える 2

0

On Error ステートメントを次のように配置して、GetShapeFromWeb サブで試しましたか。

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 に答える