標題:
[發問]
擷取web下拉式表單
[打印本頁]
作者:
carzyindex
時間:
2011-3-2 15:57
標題:
擷取web下拉式表單
請問下拉式表單裡面的文字可以擷取出來嗎
有用F12看過了
但是還是不知道該怎麼使用才好
作者:
kimbal
時間:
2011-3-2 21:48
表單裡的?
把單裡東西放在SHEET的A1
Dim Arrlist()
Arrlist = ComboBox1.List
Range("A1").Resize(UBound(Arrlist)) = Arrlist
作者:
Hsieh
時間:
2011-3-2 23:25
回復
1#
carzyindex
以錢櫃KTV網頁為例,門市查詢的下拉選單內容
http://www.cashboxparty.com/ktv/ktv_index.asp
Sub GetWebObj()
Dim MyURL$, Ar()
MyURL = "http://www.cashboxparty.com/ktv/ktv_index.asp"
Set MyIE = Nothing
Set MyIE = CreateObject("InternetExplorer.Application")
With MyIE
.Navigate MyURL
Do While .Busy Or .ReadyState <> 4
DoEvents
Loop
.Visible = False
For i = 0 To .document.all("dept").Options.Length - 1
ReDim Preserve Ar(i)
Ar(i) = .document.all("dept").Options(i).innerText
Next
.Quit
End With
MsgBox Join(Ar, Chr(10))
End Sub
複製代碼
作者:
carzyindex
時間:
2011-3-2 23:28
回復
2#
kimbal
感謝你的回覆
我是指
http://tw.weather.yahoo.com/
裡面的國際主要都市天氣
洲的下拉式表單
該怎麼從這網站匯入excel
得到亞洲大洋洲歐洲等文字
作者:
carzyindex
時間:
2011-3-2 23:30
回復
3#
Hsieh
感謝版大相助會受惠良多
作者:
FAlonso
時間:
2011-3-9 14:41
本帖最後由 FAlonso 於 2011-3-9 14:43 編輯
把H大的程式略為修改一下,變成
Sub abc()
Dim myie As SHDocVw.InternetExplorer, myURL As String, ar(), i As Integer
Set myie = CreateObject("internetexplorer.application")
myURL = "http://tw.weather.yahoo.com/"
With myie
.Navigate myURL
Do While .Busy And .ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
.Visible = False
For i = 0 To .Document.all("select").Options.Length - 1
ReDim Preserve ar(i)
ar(i) = .Document.all("select").Options(i).innertext
Next
Range("A1").Activate
For i = 1 To .Document.all("select").Options.Length - 1
ActiveCell.Value = ar(i)
ActiveCell.Offset(1).Activate
Next
.Quit
End With
End Sub
複製代碼
就行了
不過這個程式第16行不太穩定,有時會出現錯誤91,沒有設定物件變數或with區塊變數,有時成功執行,不知搞什麼鬼
作者:
Hsieh
時間:
2011-3-9 20:29
本帖最後由 Hsieh 於 2011-3-11 10:47 編輯
回復
6#
FAlonso
直接寫入儲存格,不須先寫入陣列
這重點只是取出下拉選單內容的語法
Sub abc()
Dim myURL As String,i As Integer
Set myie = Nothing
Set myie = CreateObject("internetexplorer.application")
myURL = "http://tw.weather.yahoo.com/"
With myie
.Navigate myURL
.Visible = False
Do While .Busy And .ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
For i = 0 To .Document.all("select").Options.Length - 1
Cells(i + 1, 1) = .Document.all("select").Options(i).innertext
Next
.Quit
End With
End Sub
複製代碼
作者:
FAlonso
時間:
2011-3-9 21:21
回復
7#
Hsieh
其實由KTV至奇摩天氣的例子,久不久就有這個問題,不知是系統還是記憶體問題,但不深究了
作者:
Hsieh
時間:
2011-3-11 10:44
回復
8#
FAlonso
這個原因可能是因為前一次的myie變數未被卸載所致
所以我在程式開頭就先
Set myie = Nothing
然後再去建立物件
Set myie = CreateObject("internetexplorer.application")
作者:
freeffly
時間:
2011-12-4 11:45
回復
9#
Hsieh
請問如果是這種的下拉該怎麼寫?
http://www.cnyes.com/twstock/incomes/1503.htm
下面是網頁原始碼
請問從哪裡改才能抓到別的區間資料?
如果用excel裡面的從外部匯入資料
都只能匯入最新的資料就算點到其他區間在匯入資料一樣是最新的不是所選擇的區間
<option selected="selected" value="2011年1~9月">2011年1~9月</option>
<option value="2011年1~6月">2011年1~6月</option>
<option value="2011年1~3月">2011年1~3月</option>
<option value="2010年1~12月">2010年1~12月</option>
<option value="2010年1~9月">2010年1~9月</option>
<option value="2010年1~6月">2010年1~6月</option>
<option value="2010年1~3月">2010年1~3月</option>
<option value="2009年1~12月">2009年1~12月</option>
<option value="2009年1~9月">2009年1~9月</option>
<option value="2009年1~6月">2009年1~6月</option>
<option value="2009年1~3月">2009年1~3月</option>
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)