返回列表 上一主題 發帖

[發問]VBA抓取.PHP頁問題??

本帖最後由 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個表格
此網頁擷取請測試
  1. Sub Macro1()
  2.     Dim i As Integer, j As Integer, k As Integer
  3. URL$ = "http://www.gretai.org.tw/ch/stock/statistics/monthly/st42.php"
  4.     With CreateObject("InternetExplorer.Application")
  5.         .Visible = True
  6.         .Navigate URL
  7.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  8.         For Each n In .Document.getelementsbytagname("INPUT") '這個迴圈找到按鈕是第幾個輸入項
  9.            kn = n.Value
  10.            If kn = "查詢" Then Exit For
  11.            s = s + 1
  12.         Next
  13.         .Document.all("input_stock_code").Value = 6121 '要查的代碼
  14.         .Document.getelementsbytagname("INPUT")(s).Click    '按下查詢紐
  15.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  16.         Application.Wait Now + TimeValue("00:00:02") '等待2秒更新資料
  17.         Set tmp = .Document.all("rpt_result").getelementsbytagname("table")(2) '顯示區第3個表格
  18.         k = 1
  19.         Cells(k, 1) = tmp.Rows(0).innertext
  20.         Cells(k, 1).WrapText = False
  21.         For i = 1 To tmp.Rows.Length - 1
  22.             k = k + 1
  23.             For j = 0 To tmp.Rows(i).all.Length - 1
  24.                 Cells(k, j + 1) = tmp.Rows(i).Cells(j).innertext
  25.             Next
  26.         Next
  27.         k = k + 1
  28.         Set tmp = .Document.all("rpt_result").getelementsbytagname("table")(3) '顯示區第4個表格
  29.         For i = 0 To tmp.Rows.Length - 1
  30.             k = k + 1
  31.             For j = 0 To tmp.Rows(i).all.Length - 1
  32.                 Cells(k, j + 1) = tmp.Rows(i).Cells(j).innertext
  33.             Next
  34.             Next
  35.             .Quit
  36.         End With
  37. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 3# chen_cook

除了VALUE是屬性外
    kn、n並非保留字,這是變數,你自己可以設置任何有意義的字串取代
學海無涯_不恥下問

TOP

        靜思自在 : 能善用時間的人,必能掌握自己努力的方向。
返回列表 上一主題