![](/img/trans.png)
[英]Excel VBA Open a workbook from dropbox then Save/Close Current Workbook
[英]VBA Open workbook from current cells value
嗨,我有一个电子表格,我想使用当前单元格值打开指定的URL并进入旁边的列。 URL仅包含一组字符。 我尝试使用相对引用打开录制并获得以下内容:
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
正如你所看到的那样,它似乎与文件名相对,它已经获取了我输入的值,而不是我“复制粘贴值”的事实。
一旦完成,我想重复剩下的网址列表(大约3000)。 我可能会发现有些重复,直到不再存在URL,但如果你知道一种方式也很乐意在这部分得到帮助!
谢谢
我把你给我们的链接放在A1:A10
行中,然后运行以下代码来遍历每个单元格,并将单元格中链接的值放到右边。
我还测试了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
有没有办法根据没有间隙的记录数量计算出范围本身的大小?
是的,你可以替换这个:
Set inputRange = sht.Range("A1:A10")
具有以下内容:
Set inputRange = Range(sht.Range("A1"), sht.Range("A1").End(xlDown))
A1
是您的第一个链接的位置
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.