作者dofu1943 (那就念吧~~)
看板Visual_Basic
標題[VBA ] 控制IE問題
時間Sun Sep 5 17:01:31 2021
最近接觸VBA
到了這個版才知道原來VB系列快走入歷史了.....
真是哀傷
我想問一下
我從YT上看到教學
https://www.youtube.com/watch?v=dShR33CdlY8
他連到IE的方法是
Dim IE As New SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
Dim HTMLInput As MSHTML.IHTMLElement
Dim HTMLButtons As MSHTML.IHTMLElementCollection
Dim HTMLButton As MSHTML.IHTMLElement
IE.Visible = True
IE.navigate "wiseowl.co.uk"
Do While IE.ReadyState <> READYSTATE_COMPLETE
Loop
然後我又從另一人的網頁上
https://www.automateexcel.com/vba/automate-internet-explorer-ie-using/
看到另一種開IE的方法
'This will load a webpage in IE
Dim i As Long
Dim URL As String
Dim IE As Object
Dim objElement As Object
Dim objCollection As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
URL = "
https://www.automateexcel.com/excel/"
IE.Navigate URL
Application.StatusBar = URL & " is loading. Please wait..."
Do While IE.ReadyState = 4: DoEvents: Loop 'Do While
Do Until IE.ReadyState = 4: DoEvents: Loop 'Do Until
Application.StatusBar = URL & " Loaded"
我想問一下,這兩種方法會有什麼差別嗎
然後我也覺得有一點很奇怪
在等候IE載入時的程式碼
第1則是寫
Do While IE.ReadyState <> READYSTATE_COMPLETE
第2則卻是
Do While IE.ReadyState = 4
但是在VBA裡瀏覽物件的功能中查詢
READYSTATE_COMPLETE = 4
那上面2則的程式碼寫不就矛盾了嗎?
還是我誤會了什麼
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.12.21 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1630832494.A.F92.html
1F:→ laechan: 下方那個應該是.. <> 跟 = 吧? 看你用Do While或Do Until 09/06 22:52
3F:→ laechan: Do While Not IsEmpty(Cells(i, 1)) 09/06 22:54
4F:→ laechan: Do Until IsEmpty(Cells(i, 1)) 09/06 22:54
6F:推 a24626296: 最近也在看第一個YT的教學,不過我連的是 chrome~ 09/07 09:46
7F:推 waiter337: 可查詢 前期引用 跟 後期引用 09/07 15:05
8F:→ waiter337: 兩種引用方式 除了 一開始引用的寫法不同外 09/07 15:05
9F:→ waiter337: 內部的參數也可能會有不支援或者不相同的情況 09/07 15:06
10F:→ waiter337: 也有人講 前期綁定 後期綁定 09/07 15:13
11F:→ coyoteY: IE也快走入歷史了~VBA還活著 09/26 15:15