- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
4#
發表於 2015-9-18 07:42
| 只看該作者
回復 3# jack200217
更新上面的程式碼- Option Explicit
- Const 個股月營收 = "http://goodinfo.tw/StockInfo/ShowSaleMonChart.asp?STOCK_ID="
- '加權指數 法人買賣超日統計圖
- Const 法人買賣 = "http://goodinfo.tw/StockInfo/ShowBuySaleChart.asp?CHT_CAT=DATE&STOCK_ID="
- '加權指數 融資融券餘額日統計圖
- Const 融資融券 = "http://goodinfo.tw/StockInfo/ShowBearishChart.asp?CHT_CAT=DATE&STOCK_ID="
- Sub Ex() 'Goodinfo!台灣股市資訊網
- Dim i As Integer, b As Object, E As Object, R As Integer, Ar, A As Variant
- Dim ie, Ay(), k As Integer, STOCK_ID As String, Msg As Boolean
- Do
- STOCK_ID = InputBox("輸入個股 代號", "個股 代號", 3481)
- Loop Until Val(STOCK_ID) And Len(STOCK_ID) >= 4
- Ay = Array(個股月營收 & STOCK_ID, 法人買賣 & STOCK_ID, 融資融券 & STOCK_ID)
- Set ie = CreateObject("InternetExplorer.Application")
- With ie
- .Visible = True
- For k = 1 To 3
- .Navigate Ay(k - 1)
- Do While .Busy Or .readyState <> 4: DoEvents: Loop
- With .Document.BODY
- If InStr(.INNERTEXT, "查無") Then
- Msg = True
- GoTo Er
- End If
- End With
- Do
- Set E = .Document.getElementsByTagName("table")
- Loop While E Is Nothing
- If Sheets.Count < k Then Sheets.Add after:=Sheets(Sheets.Count)
- With Sheets(k)
- .Cells.Clear
- R = 1
- If k = 1 Then '個股月營收
- Ar = Array(13, 20)
- ElseIf k = 2 Then '法人買賣
- Ar = Array(19, 22, 24, 31)
- Else '融資融券
- Ar = Array(19, 22, 24, 30)
- End If
- For Each A In Ar
- For Each b In E(A).Rows
- For i = 0 To b.Cells.Length - 1
- ' If InStr(b.Cells(i).INNERTEXT, "資料日期: 無交易資料") Then
- ' Msg = True
- ' GoTo Er
- ' End If
- .Cells(R, i + 1) = b.Cells(i).INNERTEXT
- Next
- R = R + 1
- Next
- R = R + 1
- Next
- End With
- Next
- Er: ' Title
- MsgBox Split(.Document.Title, "-")(0) & IIf(Msg, "查無相關資料", " 下載 ok")
- .Quit '關閉網頁
- End With
- End Sub
複製代碼 |
|