Board logo

標題: [發問] VBA控制IE輸入值 [打印本頁]

作者: kim223824    時間: 2015-12-5 16:07     標題: VBA控制IE輸入值

請問VBA神人:
要如何控制IE的值在VBA直接輸入就好?
以下是我模仿的程式,地區輸入: 104 ,
執行到Set what = .document.getElementByName("onchage")
就出現錯誤訊息,可是不知道怎麼改,請問有大大可以協助嗎??

Sub Ex_網頁元素_3()

Dim E As Object, what As Object

Set objIE = CreateObject("InternetExplorer.application")
URL = "http://amis.afa.gov.tw/v-htm/v102.htm"

myjobtype = InputBox("輸入地區代號:")

With objIE
    .Visible = True
    .Navigate URL
    Do While .Busy Or .readyState <> 4: DoEvents: Loop
   
    Set what = .document.getElementByName("onchage")
    what.Item(0).Value = myjobtype
   
    .document.getElementByName("B1").Click        '搜尋鍵
   
   
   
                With .document  '網頁的文件
                  '*** 這段程式碼可查看這網頁的元素內容
                    On Error Resume Next
                    For Each E In .all
                        i = i + 1
                        Cells(i, "a") = E.tagname   '控制項標記的名稱
                        Cells(i, "b") = E.ID        '控制項標記的ID (惟一的)
                        Cells(i, "c") = E.Name      '控制項標記的命名
                        Cells(i, "d") = E.Value     '控制項標記的值
                        Cells(i, "e") = E.innertext '控制項標記的文字
                        Cells(i, "f") = E.Type      '控制項標記的類型
                        Cells(i, "g") = E.href      '控制項標記的網址
                    Next
                  '****************************************
                End With
                '.QUIT
    End With

End Sub
作者: kim223824    時間: 2015-12-6 01:46

附上檔案內容,請大大幫忙下!!
作者: GBKEE    時間: 2015-12-6 16:34

回復 2# kim223824
  'URL = "http://amis.afa.gov.tw/v-htm/v102.htm"
    '********網址有改變 ******
    URL = "http://amis.afa.gov.tw/v-asp/v102q.asp"

[attach]22728[/attach]

試試看
  1. Option Explicit
  2. Sub 菜價2015_12_05_1()
  3.     Dim xTable As Object, k As Integer, c As Integer, r As Integer
  4.     'URL = "http://amis.afa.gov.tw/v-htm/v102.htm"
  5.     '********網址有改變 ******
  6.     URL = "http://amis.afa.gov.tw/v-asp/v102q.asp"
  7.    
  8.     With CreateObject("InternetExplorer.application")
  9.         .Visible = True
  10.         .Navigate URL
  11.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  12.         With .document
  13.             .ALL("mkno").Value = 104
  14.             .ALL("B1").Click
  15.         End With
  16.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  17.         Set xTable = .document.getelementsbytagname("TABLE") '(1)
  18.         With Sheets("下載")
  19.             .UsedRange.Clear
  20.             k = 1
  21.             For i = 0 To 1 ' For EACH  E In xTable  '.document.getelementsbytagname("TABLE")
  22.                 For r = 0 To xTable(i).Rows.Length - 1
  23.                     For c = 0 To xTable(i).Rows(r).Cells.Length - 1
  24.                         .Cells(k + r, c + IIf(i = 0, 1 + 1 * c, 1)) = xTable(i).Rows(r).Cells(c).innerText
  25.                     Next
  26.                 Next
  27.                 k = k + xTable(i).Rows.Length
  28.             Next
  29.         End With
  30.         .Quit
  31.     End With
  32. End Sub
複製代碼

作者: kim223824    時間: 2015-12-7 00:57

太感謝GBKEE大大了!! 可以使用。
另外請問以下變數在哪裡有說明資料?
xTable(i).Rows.Length - 1
xTable(i).Rows(r).Cells.Length - 1
Cells(k + r, c + IIf(i = 0, 1 + 1 * c, 1)) = xTable(i).Rows(r).Cells(c).innerText
作者: GBKEE    時間: 2015-12-7 15:20

回復 4# kim223824
  1.   Set xTable = .document.getelementsbytagname("TABLE") '(1)
  2.         Stop  '程式暫停
複製代碼
[attach]22740[/attach]




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)