VBA导入动态URL

时间:2020-09-20 21:02:22

标签: excel vba

我正在尝试将文本文件自动导入到Excel中,并且出现了一些问题。

我在这里使用香蕉作为URL的动态方程式,但是失败了。

http://regsho.finra.org/regsho-September.html

Option Explicit 

Public Sub testing()
   Dim qt As QueryTable
   Dim ws As Worksheet
   Dim banana As String

   Set ws = ThisWorkbook.Worksheets("Sheet1")
   
   banana = Range("C4").Value
    
   Const URL As String = "http://regsho.finra.org/CNMSshvo"" & banana & "".txt"

   Set qt = ws.QueryTables.Add(Connection:="URL;" & URL, Destination:=ws.Range("A1"))

   With qt
      .RefreshOnFileOpen = True
      .FieldNames = True
      .WebSelectionType = xlSpecifiedTables
      .WebTables = 1
      .Refresh BackgroundQuery:=False
   End With 
End Sub

1 个答案:

答案 0 :(得分:0)

可能是因为您以错误的方式向文本字符串添加了banana变量。您正在做:

Const URL As String = "http://regsho.finra.org/CNMSshvo"" & banana & "".txt"

这应该是

Const URL As String = "http://regsho.finra.org/CNMSshvo" & banana & ".txt"

即用单引号替换双引号。字符串中有2个双引号会在文本中插入一个文本双引号(这称为转义),这意味着字符串在插入的双引号之后才继续。反过来,这意味着您在字符串中包含文字文本“ banana”(包括引号)。因此,您最终得到以下URL:

http://regsho.finra.org/CNMSshvo" & banana & ".txt

一种解决这类问题的方法是在const字符串之后添加以下内容:

call MsgBox(URL)

,您很快就会发现自己建立了什么URL:)