Excel VBA从url获取图像

我正在Excel 2013上的一个macros来从一列(列“f”),并把它放在下一列(列“G”)的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 

如果我理解正确,这就是你正在努力实现的

 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 

问题是你把它放在Range Range("a65536").End(xlUp).Offset(6, i)

所以你从i列A抵消。改变, i7指定列G,或其他variables,如果你需要它的dynamic。

您的范围说明正在执行以下操作:

  1. 转到单元格A65536
  2. 按Ctrl +向上查找列A中最后使用的行
  3. 往下走6行( .Offset(6
  4. 去我列(2或3,这意味着列B或C)
  5. 在那里插入图像。

如果列A没有与列G相同的行数,那么这会造成问题,而且这听起来也不像6行那样偏移。