我使用Web查詢從網頁獲取許多表格到Excel。 在網頁的表格中列出這樣在一個Excel Web查詢中獲取多個表格
- A1
- A2
- A3
- A4
- A5
- A6
- A7
- A8
- A9
- A10
- A11
- A12
- A13
- A14
- A15
- A16
- A17
- B1
- B2
- B3
- B4
- B5
- B6
- B7
- B8
- B9
- B10
- B11
- B12
- B13
- B14
- B15
- B16
- B17
- ...
在Excel中我需要他們是這樣的:
A1 B1 C1 D1 E1 F1 G1 ...
A2 B2 C2 D2 E2 F2 G2 ...
我得到所有這些表通過運行幾次這個代碼,只需更改網頁從1,18,35,52,69 ...到2,19,36,5 3,70 ... 3,20,37,54,71 ...直到17,34,51,68,85 ...以及從A1放到AE1,BI1 ...的範圍:
With ActiveSheet.QueryTables.Add(Connection:="URL;http://domain.com", Destination:=Range("$A$1"))
.Name = "table-01"
.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 = _
"1,18,35,52,69,86,103,120,137,154,171,188,205,222,239,256,273,290,307,324,341,358,375,392,409,426,443,460,477,494,511,528,545,562,579,596,613,630,647,664,681,698,715,732,749,766,783,800,817,834"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = True
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
上述代碼運行17次以獲取所有數據並將其從所有垂直移動到水平移動到Excel中。 但花了很長時間,我注意到對於每個webquery,我打開一個新的連接,將數據導入Excel,關閉,移動到下一個,打開連接,將數據導入Excel,關閉...等等17次。但是,高負載,網絡服務器,錯誤和空白頁,有時響應,所以我得到了我的Excel空部件,如:
A1 B1 C1 XX E1 F1 G1 ...
A2 B2 C2 XX E2 F1 G2 ...
我想知道是否可以做任何這些選項,較容易和/或更好:
- 從Excel中打開一個連接,並獲取所有數據中循環,然後關閉連接,或
- Excel檢測s表示該webquery沒有返回任何數據,因此webquery是空白的,直到它得到的數據,然後移動到下一個查詢,以便它會自動重試該webquery
編輯:Graphical idea of how the tables should be arranged in one call
選項的所有數據1是可能的各種方法消耗臭氧層物質。使用HTTPXML對象,通常稱爲'刮'。 – Jeeped
這是一個。 [鏈接](http://stackoverflow.com/questions/29723571/post-website-form-data-and-retrieve-results/29724280#29724280)。點擊問題的[xmlhttp-vba]或[html-parsing]標籤查看更多示例。 – Jeeped
使用HTPXML我會得到所有的數據,但我必須把table1,table17 ...放在右下,然後table2,table18放在右邊等所有其他表,我不知道是否正確如何移動它們,因爲我沒有任何參考如何知道何時完成一個表,並開始下一個... – gxe