返回列表 上一主題 發帖

[發問] IE已設定.Visible仍跳出網頁

[發問] IE已設定.Visible仍跳出網頁

請教一下各位VBA高手,利用VBA程式開啟網頁操作這個我會
網頁也設定Visible=False了,但同樣程式碼在不同電腦執行時
卻會有不同結果,有時網頁會跳出來,有時則不會
這讓我還蠻困惑的,因為每次網頁跳出的時候,VBA程式都會出錯
是需要做什麼設定還是可以加入什麼程式碼,讓網頁百分之百不會跳出
希望有高手可以幫忙解惑一下,非常感謝。
  1. Sub test()
  2. Set IE = CreateObject("InternetExplorer.Application")
  3.     With IE
  4.         .Visible = True
  5.         .Navigate "https://www.tpex.org.tw/web/stock/statistics/monthly/st44.php?l=zh-tw"
  6.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  7.     End With
  8. End Sub
複製代碼

本帖最後由 smart3135 於 2020-1-25 00:06 編輯
我一直認為 excel vba 控制網頁 都不是一個明智的決定
因為網路上的教學 不多 而且對剛入手的用戶複雜
我 ...
adrian_9832 發表於 2020-1-22 07:58

您好,我知道python其實很好用,只是因為公司在工作上只能使用EXCEL
沒辦法另外裝其他軟件,所以也沒辦法用python,目前是爬了幾天Google大神
僅有在http://coding-warehouse.logdown.com/posts/193504-get-ie找到解決方法
但公司的電腦這樣設定不是很恰當,有試過在程式碼中加入IE.Quit或Set IE=Nothing
依舊會出錯,不知是否還有其他方式

執行程式碼出錯


目前唯一找到的解決方法

TOP

回復 4# joey0415
Joey大,不好意思,不是很懂您這段程式碼,不知能不能套用在我的程式碼呢?
  1. Sub 工單總數回報()
  2. Set IE = CreateObject("InternetExplorer.Application")
  3.     With IE
  4.         .Visible = False
  5.        .Navigate "公司網址"
  6.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop

  7.         With .Document
  8.                 .ALL("dFrom").Value = "2020/01/05"    '開始日期
  9.                 .ALL("dTo").Value = "2020/01/11"    '結束日期
  10.                 For Each E In .GetElementsBytagName("INPUT")
  11.                     If E.Value = "查詢" Then
  12.                         E.Click
  13.                         Exit For
  14.                     End If
  15.                 Next
  16. '                .ALL("查詢").Click       '按下查詢鍵
  17.             End With
  18.             Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  19.             .execwb 17, 2
  20.             .execwb 12, 2

  21.         With ActiveSheet
  22.             .Cells.Delete
  23.             .[a1].Select
  24.             .PasteSpecial Format:="Unicode 文字", Link:=False, DisplayAsIcon:= _
  25.             False, NoHTMLFormatting:=True
  26.         End With
  27.     End With
  28. End Sub
複製代碼

TOP

        靜思自在 : 發脾氣是短暫的發瘋。
返回列表 上一主題