2016-05-22 77 views
-1
  1. TR ---- 0495024988如何在HTML表格使用VBA代碼

  2. 1996年8月14日

  3. 04/04/130/02514/AM96/

  4. 選擇6 TR的TD
  5. 1996年1月23日

6. TR ----(這裏的文字是有,我有一份我的excel表)

在這裏,我看了很多帖子裏的JavaScript代碼給定,但是VBA代碼不存在。請幫我解決這個問題。

+0

主要問題是如何從Excel VBA訪問HTML。請說明你是如何做到的。例如,如果您可以在瀏覽器中訪問DOM,那麼JavaScript和VBA之間的其他方法沒有多大區別。 –

+0

嗨alex,我用來訪問的代碼被粘貼在下面。 –

回答

0

子GoToWebSiteAndPlayAroundNew()

昏暗APPIE作爲對象'InternetExplorer.Application 昏暗URL作爲字符串 昏暗我只要,strText中作爲字符串

昏暗文檔作爲對象,hTable作爲對象,hBody作爲對象端粒酶RNA爲對象,HTD作爲對象 昏暗Tb作爲對象,BB作爲對象,TR爲對象,TD作爲對象

昏暗ÿ只要,Z長,WB作爲Excel.Workbook,WS作爲Excel.Worksheet

昏暗SWS作爲SHDocVw.ShellWindows 昏暗IE作爲對象

昏暗VIE作爲SHDocVw.InternetExplorer

設置WB = Excel.ActiveWorkbook 集WS = wb.ActiveSheet

集APPIE =的CreateObject(」 InternetExplorer.Application 「) URL =」 http://dgft.delhi.nic.in:8100/dgft/IecPrint

Y = 1 'A欄在Excel Z = 1' 行1在Excel

隨着APPIE .navigate URL 。可見=真

的do while .busy:的DoEvents:迴路 的do while .ReadyState <> 4:的DoEvents:迴路

.document.getElementById( 「IEC」 )。價值= 「0495024988」

.document.getElementById( 「名稱」)。值= 「AMB」

結束隨着

上的錯誤繼續下一步

隨着appIE.document

集elems的= .getElementsByTagName( 「輸入」) 每個電子郵件在elems的

如果(例如的getAttribute( 「值」)= 「提交查詢」)然後 e.Click 退出對於 結束如果

下一封

隨着 設置結束SWS =新SHDocVw.ShellWindows 對於每個VIE在SWS '如果左(vIE.LocationURL,4)= 「HTTP」 然後' 避免資源管理器窗口的/ etc這樣 '如果MSGBOX( 「發現IE窗口的網址是:」 & vbCrLf & vIE.LocationURL & vbCrLf & _ ' vbCrLf &「你想看看htm L' 「vbYesNo)= vbYes然後MSGBOX vIE.document.body.innerHTML '在一個MsgBox 顯示HTML' '或把它放到一個文件 ' 暗淡VFF只要 'VFF = freefile ' 打開」 C :\ thehtml.txt」如#vff '輸出打印#VFF,vie.document.body.innerhtml '靠近#vff ' 結束如果 ' 結束如果

Set doc = vIE.document 
Set hTable = doc.getElementsByTagName("table") 


For Each tb In hTable 

    Set hBody = tb.getElementsByTagName("tbody") 
    For Each bb In hBody 

     Set hTR = bb.getElementsByTagName("tr") 

     MsgBox hTR.Length 
     For Each tr In hTR 


      Set hTD = tr.getElementsByTagName("td") 
      MsgBox hTD.Length 
      y = 1 ' Resets back to column A 
      For Each td In hTD 

       ws.Cells(z, y).Value = td.innerText 
       y = y + 1 
      Next td 
      DoEvents 
      z = z + 1 

     Next tr 
     Exit For 
    Next bb 
Exit For 

接着TB

Next

End Sub