返回列表 上一主題 發帖

請問這個網頁如何用WEB查詢輸入excel

回復 41# joey0415
  1. Do While .readyState <> 4: DoEvents: Loop
複製代碼
改成
  1. Do While .readyState <> 4 Or .Busy: DoEvents: Loop
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 45# joey0415
  1. Busy = True            
  2. Busy = False

  3. READYSTATE_UNINITIALIZED = 0
  4. READYSTATE_LOADING = 1
  5. READYSTATE_LOADED = 2
  6. READYSTATE_INTERACTIVE = 3
  7. READYSTATE_COMPLETE = 4
複製代碼
不想再CREAT另一個IE : 52# c_c_lai 已寫出了
回復 52# c_c_lai
在2003有錯誤修正如下
  1. Option Explicit
  2. Sub 鉅享網()
  3.     Dim URL As String, shts As Worksheet
  4.     Dim x As Variant, xi As Integer, A As Object, xlHtm
  5.     Set shts = ActiveSheet '  '("工作表2")
  6.     shts.Cells.Clear
  7.     URL = "http://www.cnyes.com/twstock/Institutional/1101.htm"
  8.     With CreateObject("InternetExplorer.Application")
  9.         .Visible = True     '  是否顯示 IE
  10.         .Navigate URL
  11.          Do While .ReadyState <> 4 Or .Busy
  12.                 DoEvents
  13.             Loop
  14.         For Each x In .Document.getElementsBytagname("input")
  15.             If x.Value = "查詢" Then x.Click: Exit For
  16.         Next
  17.         Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop
  18.         xlHtm = .Document.body.innerHTML                '儲存
  19.         Set A = .Document.getElementsBytagname("table")
  20.         For xi = 1 To 6
  21.             .Document.body.innerHTML = A(xi).outerHTML
  22.             .ExecWB 17, 2       '  Select All
  23.             .ExecWB 12, 2       '  Copy selection
  24.             With shts
  25.                 .Range("A" & .[A65535].End(xlUp).Row + 1).Select
  26.                 .PasteSpecial Format:="HTML"
  27.             End With
  28.             .Document.body.innerHTML = xlHtm                  '還原
  29.         Next xi
  30.         shts.Cells.EntireColumn.AutoFit     '  自動調整欄寬
  31.         .Quit
  32.     End With
  33. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 55# c_c_lai
我 54# 修正的程式碼2010不可用?
2010請試試看這程式碼
  1. Option Explicit
  2. Sub 鉅享網()
  3.     Dim URL As String, shts As Worksheet, ie As Object
  4.     Dim x As Variant, A As Object
  5.     Set ie = CreateObject("InternetExplorer.Application")
  6.     ie.Navigate "about:Tabs"
  7.     ie.Visible = True
  8.     Set shts = ActiveSheet '  '("工作表2")
  9.     shts.Cells.Clear
  10.     URL = "http://www.cnyes.com/twstock/Institutional/1101.htm"
  11.     With CreateObject("InternetExplorer.Application")
  12.         .Visible = True     '  是否顯示 IE
  13.         .Navigate URL
  14.         Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop
  15.         For Each x In .Document.getElementsBytagname("input")
  16.             If x.Value = "查詢" Then x.Click: Exit For
  17.         Next
  18.         Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop
  19.         Set A = .Document.getElementsBytagname("table")
  20.         For x = 1 To 6
  21.             With ie
  22.             .Document.body.innerHTML = A(x).outerHTML
  23.             .ExecWB 17, 2       '  Select All
  24.             .ExecWB 12, 2       '  Copy selection
  25.             End With
  26.             With shts
  27.                 .Range("A" & .[A65535].End(xlUp).Row + 1).Select
  28.                 .PasteSpecial Format:="HTML"
  29.             End With
  30.         Next
  31.         shts.Cells.EntireColumn.AutoFit     '  自動調整欄寬
  32.         .Quit
  33.     End With
  34.     ie.Quit
  35. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 58# c_c_lai
如果把 Set ie 以及 ie.Quit 改成註釋,則會發生如圖之錯誤: 錯誤行是哪一行?
註釋後ie變數就沒有指定物件,再使用到ie當然會錯誤.
回復 59# c_c_lai
圖中 與54# 的程式碼有點不樣,明天再看看
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 61# wufonna [/b


   
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2013-11-22 07:16 編輯

回復 64# c_c_lai
在2003也是有這錯誤,經儲存內容再還原,就沒有這錯誤.
  1.     Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop
  2.         xlHtm = .Document.body.innerHTML                '儲存
  3.         Set A = .Document.getElementsBytagname("table")
  4.         For xi = 1 To 6
  5.             .Document.body.innerHTML = A(xi).outerHTML
  6.             .ExecWB 17, 2       '  Select All
  7.             .ExecWB 12, 2       '  Copy selection
  8.             With shts
  9.                 .Range("A" & .[A65535].End(xlUp).Row + 1).Select
  10.                 .PasteSpecial Format:="HTML"
  11.             End With
  12.             .Document.body.innerHTML = xlHtm                  '還原
  13.         Next xi
複製代碼
之後在為了不儲存再還原. 才有56#的程式碼在空白網頁放置 "table"的寫法
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2013-11-22 07:44 編輯

回復 67# c_c_lai
66# 說的錯誤,2003沒有發生.
2個ie都可以不顯示,那更清爽的.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 71# c_c_lai
2個IE都不顯示,2003再跑一次,OK!
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 【行善要及時】行善要及時,功德要持續。如燒開水一般,未燒開之前千萬不要停熄火候,否則重來就太費事了。
返回列表 上一主題