- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 1# oliwa
試試看- Option Explicit
- 'http://www.twse.com.tw/ch/trading/exchange/FMNPTK/FMNPTKMAIN.php
- '<input name="CO_ID" type="text" size="8" value="2303">
- '<input name="query-button" type="submit" class="board" value="查詢" onclick="submitForm($CO_ID)">
- Sub Ex_TWSE臺灣證券交易所個股年成交資訊()
- Dim Co_Id As String, xTable As Object, Sh As Worksheet, R As Integer, C As Integer, i As Integer, ii As Integer
- Co_Id = InputBox("請輸入股票代碼 ")
- With CreateObject("InternetExplorer.Application")
- .Visible = True '**網頁不顯示 .Visible = False
- .Navigate "http://www.twse.com.tw/ch/trading/exchange/FMNPTK/FMNPTKMAIN.php?&CO_ID=" & Co_Id
- Do While .Busy Or .readyState <> 4: DoEvents: Loop '等候網頁宰入完整
- .Document.ALL("query-button").Click '網頁上按下查詢鍵
- Do While .Busy Or .readyState <> 4: DoEvents: Loop '等候網頁宰入完整
- Set xTable = .Document.ALL.TAGS("Table") '設定變數為網頁 tagname "Table"的物件集合
- '***這段程式碼供尋找第幾個Table為所你要的資料**
- ' For i = 0 To xTable.Length - 1 'Length 網頁物件集合計算子物件的函數
- ' MsgBox "第" & i & "個資料" & vbLf & xTable(i).innertext '**查看你要的資料為第幾個Table
- ' Next
- '************************************
- Set Sh = Sheets("SHEET1") '指定工作頁
- Sh.UsedRange.Clear '清除工作頁
- '*******讀取資料的程式碼******************
- ii = 1
- For i = 3 To 4
- If InStr(xTable(i).innertext, "查無資料!") Then MsgBox xTable(i).innertext: .Quit: Exit Sub
- For R = 0 To xTable(i).Rows.Length - 1 '
- For C = 0 To xTable(i).Rows(R).Cells.Length - 1
- Sh.Cells(R + ii, C + 1) = xTable(i).Rows(R).Cells(C).innertext
- Next
- Next
- ii = R + 2
- Next
- '****************************************************
- With Sh
- Co_Id = .[a1]
- .[a1] = ""
- .UsedRange.Columns.AutoFit '**AutoFit 方法 將範圍中的欄寬和列高調整為最適當的值。
- .[a1] = Co_Id
- End With
- .Quit '關閉網頁
- End With
- End Sub
複製代碼 |
|