Импортировать страницу Gsheet в Excel

Я пытаюсь импортировать страницу Gsheet в Excel, запрашивая URL-адрес Gsheet в окне сообщения.

Мне удается импортировать его, когда я надуваю URL-адрес прямо в код VBA, но не когда я копирую URL-адрес в MsgBox, я получаю ошибку 1004 в ".Refresh", говоря, что адрес не подходит, когда я удаляю это строка код не работает.

Вот код:

Sub I_G()

    Sheets("Feuil1").Select
    resultats = InputBox("Copy the URL of the data collection", "URL")

    If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData

    With ActiveSheet.QueryTables.Add(Connection:= _
      "URL; resultats", Destination:=Range("$A$1"))
         .WebFormatting = xlWebFormattingNone
         .BackgroundQuery = True
         .Refresh

    End With

End Sub

1 ответ

Решение

Вы не передаете введенный URL в Querytables.Add-команда, вы передаете строку "URL; resultats". VBA не просматривает строку, чтобы проверить, содержит ли она имя переменной.

var myVar as string
myVar = "ABC"
Debug.print "URL; myVar"      ' <-- Will print "URL; myVar" 
Debug.print "URL; " & myVar   ' <-- Will print "URL; ABC"

Итак, вам нужно изменить строку на

With ActiveSheet.QueryTables.Add(Connection:= _
  "URL; " & resultats, Destination:=Range("$A$1"))
    ...
End With

Таким образом, содержимое вашей переменной объединяется с префиксомURL;

Другие вопросы по тегам