Как вы переименовываете URL файла в переменную в VB скрипте? - PullRequest
0 голосов
/ 21 июля 2011

Я делаю программу в Microsoft Excel, используя несколько макросов VB-скриптов. Один из моих макросов получает данные «Из Интернета» и извлекает таблицу на лист в Excel. Когда я говорю «Из Интернета», я просто копирую и вставляю URL из HTML-файла, который есть на моем рабочем столе. Местоположение моей программы будет часто меняться, поэтому мне нужно иметь ячейку в Excel, где я могу указать этот URL, на который будет ссылаться мой макрос.

Вот мой код ниже:

 Sub ImportSwipeDataWithTitlesBeta()
'
' ImportSwipeDataWithTitlesBeta Macro
'
' Keyboard Shortcut: Ctrl+Shift+K
'
Sheets("Import Swipe Data").Select
Cells.Select
Selection.Delete Shift:=xlUp
Range("A3").Select
With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;file:///C:/Users/Sean/Desktop/Attendance Program ADC/ACS%20OnSite%20SE%20Complete.htm", _
    Destination:=Range("$A$3:$C$3"))
    .Name = "ACS%20OnSite%20SE%20Complete_8"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlEntirePage
    .WebFormatting = xlWebFormattingNone
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
End With
Sheets("Resource Sheet").Select
Range("B2:C2").Select
Selection.Copy
Sheets("Import Swipe Data").Select
Range("A1:B1").Select
ActiveSheet.Paste
Range("A2").Select
End Sub

Спасибо за помощь!

1 Ответ

0 голосов
/ 21 июля 2011

Вам не нужно .Select каждый диапазон, который вы используете. Эти операторы генерируются путем записи макроса, но впоследствии вы можете очистить свой код, как описано здесь .

Тем не менее, чтобы ответить на ваш вопрос, вы можете сохранить свой URL в переменной:

Dim myURL As String

myURL = "URL;" & Sheets("Import Swipe Data").Range("A1").Value
With ActiveSheet.QueryTables.Add(Connection:= myURL, Destination:=Range("$A$3:$C$3"))
   (...)
End With

С уважением,

...