- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 84
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-4-8
               
|
本帖最後由 Hsieh 於 2012-3-2 09:46 編輯
回復 1# chen_cook
With CreateObject("InternetExplorer.Application")
.Visible = True
.Navigate URL
Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
For Each n In .Document.getelementsbytagname("INPUT") '這個迴圈找到按鈕是第幾個輸入項
kn = n.Value
If kn = "查詢" Then Exit For
s = s + 1
Next .Document.all("input_stock_code").Value = 6121 '要查的代碼
.Document.getelementsbytagname("INPUT")(s).Click '<=====巨集執行到此就錯誤,請問這一行是為何意,找了很久查不出是何意
Application.Wait Now + TimeValue("00:00:02") '等待2秒更新資料
Set tmp = .Document.getelementsbytagname("table")(79) '<==== (79)又是何意??79就表示第80個表格
此網頁擷取請測試- Sub Macro1()
- Dim i As Integer, j As Integer, k As Integer
- URL$ = "http://www.gretai.org.tw/ch/stock/statistics/monthly/st42.php"
- With CreateObject("InternetExplorer.Application")
- .Visible = True
- .Navigate URL
- Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
- For Each n In .Document.getelementsbytagname("INPUT") '這個迴圈找到按鈕是第幾個輸入項
- kn = n.Value
- If kn = "查詢" Then Exit For
- s = s + 1
- Next
- .Document.all("input_stock_code").Value = 6121 '要查的代碼
- .Document.getelementsbytagname("INPUT")(s).Click '按下查詢紐
- Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
- Application.Wait Now + TimeValue("00:00:02") '等待2秒更新資料
- Set tmp = .Document.all("rpt_result").getelementsbytagname("table")(2) '顯示區第3個表格
- k = 1
- Cells(k, 1) = tmp.Rows(0).innertext
- Cells(k, 1).WrapText = False
- For i = 1 To tmp.Rows.Length - 1
- k = k + 1
- For j = 0 To tmp.Rows(i).all.Length - 1
- Cells(k, j + 1) = tmp.Rows(i).Cells(j).innertext
- Next
- Next
- k = k + 1
- Set tmp = .Document.all("rpt_result").getelementsbytagname("table")(3) '顯示區第4個表格
- For i = 0 To tmp.Rows.Length - 1
- k = k + 1
- For j = 0 To tmp.Rows(i).all.Length - 1
- Cells(k, j + 1) = tmp.Rows(i).Cells(j).innertext
- Next
- Next
- .Quit
- End With
- End Sub
複製代碼 |
|