返回列表 上一主題 發帖

抓4個網頁合併一份資料,2個輸入欄位寫法請教(年,月)

抓4個網頁合併一份資料,2個輸入欄位寫法請教(年,月)

本帖最後由 bioleon69 於 2017-5-2 15:58 編輯

從觀測站進去有8個選項
http://mops.twse.com.tw/mops/web/t21sc04_ifrs
如圖

國內上市http://mops.twse.com.tw/nas/t21/sii/t21sc03_106_3_0.html
國外上市http://mops.twse.com.tw/nas/t21/sii/t21sc03_106_3_1.html
國內上櫃http://mops.twse.com.tw/nas/t21/otc/t21sc03_106_3_0.html
國外上櫃http://mops.twse.com.tw/nas/t21/otc/t21sc03_106_3_1.html
我想將前四個選項
裡面的網頁表格內容,全部寫入同一份excel
excel裡面就放兩個輸入的欄位
年跟月
請問有什麼方法可以這樣寫?

目前是只會寫一個網址進去,用qt
也還沒設定年月分別在a1,b1輸入
  1. Sub 月營收()
  2. Call 清除外部資料
  3. UsedRange.Clear
  4. Set keyin = ActiveSheet
  5. Set Show = keyin.QueryTables _
  6.         .Add(Connection:="URL;http://mops.twse.com.tw/nas/t21/sii/t21sc03_106_3_0.html", _
  7. Destination:=keyin.Cells(1, 1))
  8. With Show
  9.     .Name = "暫存資料"
  10.     .RefreshStyle = xlInsertEntireRows
  11.     .AdjustColumnWidth = False
  12.     .RefreshPeriod = 0  '關閉定時更新
  13.     .WebSelectionType = xlAllTables
  14.     .WebFormatting = xlWebFormattingNone ' 無格式
  15.     .Refresh BackgroundQuery:=False
  16. End With
  17. End Sub

  18. Sub 清除外部資料()
  19. Dim sh As Worksheet, qyt As QueryTable
  20. For Each sh In ActiveWorkbook.Worksheets
  21. For Each qyt In sh.QueryTables
  22. qyt.Delete
  23. Next
  24. Next
  25. End Sub
複製代碼
qt
msxml2
InternetExplorer.Application
只能稍微看得懂一點點一點點這三種的方法= =

盼大大們教學指教

先不用勞煩大大,不好意思
目前程式碼以更動
沒打算用QT了
目前已XML為主
謝謝

TOP

本帖最後由 bioleon69 於 2017-5-12 07:51 編輯

回復 2# bioleon69

請教大大!
目前用QT匯入網頁資料
有4個URL
4個SUB不同的地方就是,URL跟.NAME的部分
不知道有沒有辦法合併成一個SUB?(我現在是跑4個SUB,只有URL跟NAME不一樣)
這樣執行感覺是同樣的東西跑4次,速度跟效率上都似乎都差了,所以來請教前輩們
有沒有可以變成一個的方法

目前是用一個sub然後
call test
call test1
call test2
call test3

然後test,test1,test2,test3 就url跟.name不同
  1. Sub TEST()
  2.     With ActiveSheet.QueryTables.Add(Connection:="URL;http://mops.twse.com.tw/nas/t21/sii/t21sc03_" & ccyear & "_" & ccmonth & "_0.html", Destination:=Range("B" & maxr + 5))
  3.         .Name = "TEST"
  4.         .WebFormatting = xlWebFormattingNone
  5.         .WebTables = "2"
  6.         .RefreshStyle = xlOverwriteCells
  7.         .WebPreFormattedTextToColumns = True
  8.         .WebConsecutiveDelimitersAsOne = True
  9.         .WebDisableDateRecognition = False
  10.         .Refresh BackgroundQuery:=False
  11.     End With
  12. End Sub
複製代碼
VBA 從0開始
先從學會看的懂開始
先從會有基本修改能力開始
一步一步學習中

TOP

回復 3# bioleon69
  1. Option Explicit   '在模組層次中強迫每個在模組�堛瘍僂くㄔ眸楨�確的宣告。
  2. Sub Ex()
  3.     Dim Ar1(), Ar2(), i As Integer
  4.     Ar1 = Array("http://mops.twse.com.tw/nas/t21/sii/t21sc03_", "XXX1", "XXX2", "XXX3")
  5.     Ar2 = Array("TEST1", "TEST2", "TEST3", "TEST4")
  6.     For i = 0 To UBound(Ar1)
  7.         TEST Ar1(i), Ar2(i)
  8.     Next
  9. End Sub
  10. Sub TEST(ByVal xUrl As String, ByVal xName As String)
  11.     With ActiveSheet.QueryTables.Add(Connection:="URL;" & xUrl & ccyear & "_" & ccmonth & "_0.html", Destination:=Range("B" & maxr + 5))
  12.         .Name = xName
  13.         .WebFormatting = xlWebFormattingNone
  14.         .WebTables = "2"
  15.         .RefreshStyle = xlOverwriteCells
  16.         .WebPreFormattedTextToColumns = True
  17.         .WebConsecutiveDelimitersAsOne = True
  18.         .WebDisableDateRecognition = False
  19.         .Refresh BackgroundQuery:=False
  20.     End With
  21. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# GBKEE

收到!趕緊來測試一下看看!
VBA 從0開始
先從學會看的懂開始
先從會有基本修改能力開始
一步一步學習中

TOP

        靜思自在 : 信心、毅力、勇氣三者具備,則天下沒有做不成的事。
返回列表 上一主題