- 帖子
- 248
- 主題
- 55
- 精華
- 0
- 積分
- 314
- 點名
- 182
- 作業系統
- XP / WIN7
- 軟體版本
- 2003 / 2007
- 閱讀權限
- 20
- 性別
- 男
- 來自
- Tainan
- 註冊時間
- 2013-10-18
- 最後登錄
- 2026-10-3
             
|
回復 2# GBKEE
下方的page_no是用來換頁
因為頁面一次僅能顯示100筆
但有的查詢結果會大於100筆
後來我發現網址中會有個pageoffset
如果pageoffset=100,則會換頁,顯示第101~200筆
所以我的作法用個迴圈讓pageoffset +100
一直換頁到筆數跟上一次一樣,即代表最後一頁了,則停止執行。- Sub Search_Click()
- Dim Key_URL As String
- Dim start_row As Integer
- Dim flag_row As Integer
- Dim page_no As Integer
-
- '多頁切換
- page_no = 0
- '起始欄位
- start_row = 2
-
- '如果一直換頁 換到沒有筆數時 則停止(開始比數=結束比數 未增加)
- Do Until (start_row = flag_row)
-
- start_row = Worksheets("BC Data").Range("C65536").End(xlUp).Row + 1
-
- Key_URL= "URL;http:// ***** & "pageoffset=" & page_no
-
- With Worksheets("BC Data").QueryTables.Add(Connection:=Key_URL, _
- Destination:=Worksheets("BC Data").Range("A" & start_row))
- .WebSelectionType = xlSpecifiedTables
- .WebFormatting = xlWebFormattingNone
- .WebTables = "5"
- .WebPreFormattedTextToColumns = True
- .WebConsecutiveDelimitersAsOne = True
- .WebSingleBlockTextImport = False
- .WebDisableDateRecognition = False
- .WebDisableRedirections = False
- .Refresh BackgroundQuery:=False
- .Delete
- End With
-
- '一頁面100筆 執行完換頁
- page_no = page_no + 100
-
- '去標頭
- Worksheets("BC Data").Rows(start_row).Delete
-
- '紀錄最末比
- flag_row = Worksheets("BC Data").Range("C65536").End(xlUp).Row + 1
-
- '如果<100筆 執行一次結束即可
- If Worksheets("BC Data").Range("C65536").End(xlUp).Row < 201 Then Exit Sub
-
- Loop
-
- ' Debug.Print page_no
-
- End Sub
複製代碼 P.S. 因為是公司內部網站,所以我以*****取代。 |
|