2015-04-20 86 views
0

我在Excel 2013上創建了一個宏來獲取來自列(列「f」)的URL並將其放在下一列(列「G」)上我已經創建了一個代碼但我想Excel VBA從url獲取圖像

Sub GetShapeFromWeb(strShpUrl As String, rngTarget As Range) 
    With rngTarget.Parent 
     .Pictures.Insert strShpUrl 
     .Shapes(.Shapes.Count).Left = rngTarget.Left 
     .Shapes(.Shapes.Count).Top = rngTarget.Top 
    End With 
End Sub 

Sub Obtener_imagen() 
On Error Resume Next 
For i = 2 To 3 
    Call GetShapeFromWeb(Range("f" & i).Value, Hoja1.Range("a65536").End(xlUp).Offset(6, i)) 
Next i 
End Sub 
+1

它能做什麼,而不是什麼工作?你需要更具體些。 –

+0

抱歉,它將圖像放在第一列empy行的列C上,並顯示一個錯誤,但我認爲錯誤是因爲url的圖像,所以應該糾正,如果我把另一個URL –

+1

如果你有代碼isn沒有工作 - 你應該去掉任何'On Error Resume Next'語句並且實際調試它。 –

回答

1

如果我理解正確的話,這是你正在努力實現

Sub Obtener_imagen() 
Dim fila as Integer,ultima_fila as Integer 
ultima_fila =Hoja1.Range("F65536").End(xlUp).row 
For fila =1 To ultima_fila 
    With Range("G" & fila).Parent 
     .Pictures.Insert Range("F" & fila) 
     .Shapes(.Shapes.Count).Left = ("G" & fila).Left 
     .Shapes(.Shapes.Count).Top = ("G" & fila).Top 
    End With 
Next i 
End Sub 
1

的問題是,你把這個在範圍Range("a65536").End(xlUp).Offset(6, i)

所以你通過i從A列變化抵消不工作是i7指定列G或其他變量(如果您需要動態的話)。

你的範圍語句執行以下操作:

  1. 轉到單元格A65536
  2. 按Ctrl +後發現A列最後使用的排
  3. 下去6行(.Offset(6
  4. 右轉i列(2或3,表示列B或C)
  5. 將圖像插入那裏。

如果A列沒有與G列一樣的行數,並且聽起來您也不想偏移6行,這會導致您遇到問題。

+0

它的工作原理,但仍然把它放在工作表的底部,我希望它在G2,G3等頂端。 –

+0

編輯答案與更多細節。 – nwhaught