Импорт страницы Gsheet в Excel - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь импортировать страницу 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 Ответ

0 голосов
/ 17 октября 2019

Вы не передаете введенный 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;

...