Dynamic variables in .WebTables
I have answered my own question after much agony!!
For those wishing to know, I have done the following .. with certain
exact details missing...
Sub HTMLTables()
Dim xcode As String
Dim iThings As Integer
Dim iYear As Integer
Dim iMonth As Integer
Dim iDay As String
Dim arrTables() As Variant
Dim nTable As Integer
Dim j As Integer
Dim testString As String
xcode = InputBox("Please Enter X Code")
iThings = InputBox("Please Enter The Number of Things")
iYear = InputBox("Year")
iMonth = InputBox("Month")
iDay = InputBox("Day")
j = 1
ReDim arrTables(1 To iThings)
For i = 1 To iThings
nTable = j * 4
arrTables(i) = nTable
j = j + 1
Next i
testString = ""
i = 2
testString = testString & arrTables(1)
For k = 2 To iThings
testString = testString & "," & arrTables(i)
i = i + 1
Next k
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.webpage/" & iYear & "/" & iMonth & "/" & iDay &
"/" & xcode & ".html", Destination:=Range("A1" _
))
.Name = xcode
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = testString
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = True
.WebDisableDateRecognition = True
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
Through an array I created a string which carries the correct number of
elements realting to the input iThings, and each of those elements have
been multipled by 4 to give me the correct table numbers required.
The code may be rough, but it now works.
Again, if anybody else has a cleaner or better suggestion, then by all
means please publish it.
Regards,
andym
|