VBA从当前单元格值打开工作簿

您好,我有一个电子表格,我想要使用当前的单元格值打开指定的url,并进入旁边的列。 该URL只包含一组字符。 我试着打开相关参考logging,得到以下内容:

Sub GETASINV2() ' ' GETASINV2 Macro ' ' Selection.Copy Application.CutCopyMode = False Workbooks.OpenText Filename:="http://upctoasin.com/027616716927", Origin:= _ xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote _ , ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:= _ False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _ TrailingMinusNumbers:=True Selection.Copy ActiveWindow.ActivateNext ActiveCell.Offset(0, 1).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(1, -1).Range("A1").Select End Sub 

正如你所看到的,似乎所有的文件名与我input的值相比是相对的,而不是我“复制粘贴值”的事实。

一旦完成,我想重复其余的url列表(约3000)。 我可能会find一些重复,直到没有更多的URL存在,但如果你知道一种方式,也很乐意得到这部分的帮助!

谢谢

我把你给我们的链接放在行A1:A10然后运行下面的代码来遍历每个单元格,并将单元格中链接的值放到正确的位置。

我还testing了1000个链接,并在279秒内完成 – 大约每秒4个。 我有兴趣看看有没有人有更快的方法。

 Sub GETASINV2() Application.ScreenUpdating = False Dim sht As Worksheet Set sht = ThisWorkbook.Worksheets("Sheet1") 'update for your worksheet name Dim inputRange As Range, r As Range Set inputRange = sht.Range("A1:A10") 'update for your range For Each r In inputRange With sht.QueryTables.Add(Connection:= _ "URL;" & r.Value, Destination:=r.Offset(0, 1)) .Refresh BackgroundQuery:=False .Delete End With Next r Application.ScreenUpdating = True End Sub 

更新

有没有办法根据没有差距的logging数来计算范围本身的大小?

是的,你可以取代这个:

 Set inputRange = sht.Range("A1:A10") 

有以下几点:

 Set inputRange = Range(sht.Range("A1"), sht.Range("A1").End(xlDown)) 

A1是你的第一个链接的位置