- 帖子
- 15
- 主題
- 4
- 精華
- 0
- 積分
- 27
- 點名
- 0
- 作業系統
- Windows
- 軟體版本
- Win7
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2015-9-12
- 最後登錄
- 2016-2-15
|
Hi GBKEE 大大
還是不行耶,底下是VBA碼
1. 跑到 Stop會停下來
2. 如果把Stop拿掉,If element.Length < 7 Then 這一段也先拿掉,程式還是跑到 For i = 0 To element(s).Rows.Length - 1 '資料的列位,這一句報錯,執行階段錯誤 '91': 沒有設定物件變數或 With區塊變數
============================================
Sub 集保抓取()
Dim A, element As Object, i As Integer, k As Integer, J As Integer, jj As Integer, s As Integer
With CreateObject("InternetExplorer.Application")
.Visible = True
.Navigate "http://www.tdcc.com.tw/smWeb/QryStock.jsp"
Do While .Busy Or .readyState <> 4: DoEvents: Loop
With .document
'-----輸入要查詢的股票代碼
For Each A In .getelementsbytagname("INPUT") '找原始碼有input參數
If A.Name = "StockNo" Then A.Value = Range("B1").Value '找原始碼有input參數,後面的name =StockNo
Next
.ALL("SCA_DATE").SELECTEDINDEX = 2
.ALL("sub").Click
End With
Do While .Busy Or .readyState <> 4: DoEvents
Application.SendKeys "~", True '按 ENTER 按鍵 ,預防 "證券代號"有錯誤
Loop
Do
Set element = .document.getelementsbytagname("table")
Loop Until Not element Is Nothing
MsgBox element.Length
'Stop
'If element.Length < 7 Then
'MsgBox "證券代號 ??": Exit Sub
'End If
With Sheets(1)
k = k + 1
For s = 5 To 7 '已找出網頁的table內容在 5-7 中
For i = 0 To element(s).Rows.Length - 1 '資料的列位
For jj = 0 To element(s).Rows(i).Cells.Length - 1 '資料的欄位
.Cells(k, jj + 1) = element(s).Rows(i).Cells(jj).INNERTEXT
Next
k = k + 1
Next
Next
End With
End With
End Sub |
|