2016-11-30 9 views
3

画像URLの複数の列を含むSQLデータベースにリンクされたExcel文書があります。それらのURLのExcelからURLへの画像の変換(1004)

一つは、次のようになります。 https://imissit.blob.core.windows.net/iris/596480cf967e0c990c37fba3725ada0c/814040e2-0ccb-4b05-bdb3-d9dc9cc798d9/texture.png https://imissit.blob.core.windows.net/iris/596480cf967e0c990c37fba3725ada0c/814040e2-0ccb-4b05-bdb3-d9dc9cc798d9/texture.png

が、私はマクロを使用してExcel文書内の画像(例えば Excel VBA Insert Images From Image Name in Columnhttps://superuser.com/questions/940861/how-can-i-display-a-url-as-an-image-in-an-excel-cell)にそれらのURLに変換する方法についての異なるアプローチや方法を発見しました。私はこれらのアプローチを試みましたが、私の種類のURLではそれらのどれも動作しません。私は他のURL(ウェブ上のランダムな画像、httpとhttps、それが動作する画像)を試しました。翻訳された画像オブジェクトのInsertメソッドを実行することはできません(:とにかく

Sub InstallPictures() 
    Dim i As Long, v As String 
    For i = 2 To 2 
     v = Cells(i, "O").Value 
     If v = "" Then Exit Sub 
     With ActiveSheet.Pictures 
      .Insert (v) 
     End With 
    Next i 
End Sub 

を私のURLでそれをしようとしたとき、私は1004ランタイムエラーを取得する:これは、他のイメージのために働く、私が試したスニペットの一つである

)。異なる方法では、ランタイムエラーがわずかに異なります(ただし、1004は一貫しています)。ここで

は、私がその仕事をしようとしたいくつかの画像のURLです:

他の人に私のURLと異なっている何

https://docs.oracle.com/cd/E21454_01/html/821-2584/figures/HTTPS_Collab_Sample.png

http://www.w3schools.com/css/paris.jpg

https://scontent.ftxl1-1.fna.fbcdn.net/v/t1.0-9/13043727_278733959131361_2241170037980408109_n.jpg?oh=bec505696c5f66cde0cc3b574a70547c&oe=58CC35C5

、なぜこれらのメソッドは動作しません。 ?正しいアプローチは何ですか?

+0

イメージをどのようにダウンロードしていますか?また、[あなたの質問を編集](http://stackoverflow.com/posts/40890281/edit)にコードを含めてください。 – Comintern

+0

が編集されました。私はまったくダウンロードしていないと思いますか? – 4ndro1d

+0

それが他のURLで動作する場合、最初の推測は文字列の長さになります。私は何か255文字以下でそれをテストするだろう。 – Comintern

答えて

2

問題は(私が知る限り)ではありません。あなたのデバイスは、イメージをホストしているサーバー上にあり、ドキュメントの返却に失敗しています。上記のTimのコメント(206レスポンスコードに関する)がどこから来たのか分かりませんが、そのような場合、またはURLがエラーコードを返す場合は、VBAも失敗する可能性があります。何もできませんその問題がホストにある場合は、を解決する必要があります。

私は今日手動でURLを入力してファイルをダウンロードしますが、問題はありません。

私はresponse codeをチェックし、正しく200(成功)を返しています。

enter image description here

あなたはこの時点でできる最善のは、単にエラーをトラップし、後で確認するためのフラグで、それをしています。

私のテストでは、誤った処理が期待どおりに機能していることを確認するために、意図的に悪いURLを使用しました。これらは私のために失敗した唯一のものです。

enter image description here

ここで私が使用したコードはわずかにあなたからの修正、だとURLがエラーを返すセルにコメントを追加するには、エラー・ハンドラが含まれています。この方法で後で手動でレビューし、必要に応じてそれらのイメージを追加することができます。

Sub InstallPictures() 
    Dim i As Long 
    Dim v As String 
    Dim cl As Range 
    Dim pic As Shape 
    Dim errors As New Collection 

    i = 2 
    Set cl = Cells(i, 15) 
    Do While Trim(cl.Value) <> vbNullString 
     v = Trim(cl.Value) 
     cl.ClearComments 

     With ActiveSheet.Pictures 
      On Error GoTo ErrHandler 
      Set p = .Insert(Trim(v)) 
      On Error GoTo 0 
      ' I added this code to resize & arrange the pictures 
      ' you can remove it if you don't need it 
      p.TopLeftCell = cl.Offset(0, -1) 
      p.Top = cl.Offset(0, -1).Top 
      p.Left = cl.Offset(0, -1).Left 
      p.Height = Cells(i, 15).Height 
      p.Width = Cells(1, 15).Width 
      ''''''''''''''''''''''''''''' 
     End With 

NextCell: 
     i = i + 1 
     Set cl = Cells(i, 15) 
    Loop 

    If errors.Count > 0 Then 
     MsgBox "There were errors, please review the comments as some files may need to be manually downloaded" 
    End If 

    Exit Sub 


ErrHandler: 
    Call ErrorNote(v, cl, errors) 
    Resume NextCell 
End Sub 

Private Sub ErrorNote(url$, cl As Range, ByRef errs As Collection) 
' Adds an item to the errs collection and flags the offending 
' cell with a Comment indicating the error occurred. 
    On Error Resume Next 
    errs.Add (url) 
    With cl 
     .ClearComments 
     .AddComment ("Error with URL: " & vbCrLf & url) 
    End With 
End Sub 
+0

URLコメントでエラー - 他に何もありません(私は本当にそれを取得しません^^これは私のためにそれが好きです:https://s17.postimg.org/zfd6bw17z/Capture.png – 4ndro1d

+0

それは働いています。私のwifesのラップトップで..私は真剣に同じソフトウェアを実行しているのと同じモデルであるため、なぜ真実を知りません。違いは、Microsoftアカウントに記録されていました。 – 4ndro1d

関連する問題