返回列表 上一主題 發帖

請問這個網頁如何用WEB查詢輸入excel

本帖最後由 c_c_lai 於 2013-11-16 15:15 編輯
http://portal.sw.nat.gov.tw/PPL/pages/integration/layout.jsp?appId=APGQAGB315

出口報單號碼:BE  0 ...
jewayy 發表於 2013-11-15 22:02

出口報單號碼:BE  02XE580024 試試成 BE%2002XE580024
  1. http://portal.sw.nat.gov.tw/PPL/pages/integration/layout.jsp?appId=APGQAGB315declNo=BE%2002XE580024
複製代碼

TOP

本帖最後由 c_c_lai 於 2013-11-16 17:36 編輯
謝謝您的回覆,不過好像還是沒有反應。

小弟再描述清楚一下,出口報單號碼"BE  02XE580024",BE與02XE中 ...
jewayy 發表於 2013-11-16 17:28

那就改成    BE%20%2002XE580024
  1. http://portal.sw.nat.gov.tw/PPL/pages/integration/layout.jsp?appId=APGQAGB315declNo=BE%20%2002XE580024
複製代碼

TOP

回復 8# GBKEE
  1. Ar(2) = IE.getElementById("declNo").Value                   '出口報單號碼
複製代碼
要改成
  1. Ar(2) = IE.getElementById("declNo").innertext            '出口報單號碼
複製代碼
才不會產生 438的錯誤訊息。
很棒的詮釋!順帶請教一下,如果我要連同每個標題 (如:查詢結果、海空運別、出口報單號碼等)
一併下載,應該要如何處理?
謝謝您!

TOP

回復 10# GBKEE
感謝, Ex() 執行出來的結果實無法入目,還是您原來的程式碼較佳,
至於 "標題" 的問題我進入 Html 看了一下,豁然大悟,原來它是
使用 <TD> </TD> 處哩,所以也只好照單入座了。

TOP

回復 14# GBKEE
謝謝您詳盡的解說,終於問題解決了。原因是早上執行時
顯示在 Excel 表單上的是一堆亂碼。下午我用 Debug 方式
執行才發覺是 Explorer 的解譯問題。IE (10) 與  Firefox 兩者
的 Decode 有些微的差異,如透過 IE 傳入值會有亂碼,反之、
則一切正常, 如下:
  1. {"msg":"[執行成功]","transTypeCd":"海","totGrossWeight":49376,"destCd":"VNCLI",
  2.   "totPackQty":"32","declType":"G5","relDate":"102\/09\/17",
  3. "totPackQtyUnit":"PLT","declNo":"BE  02XE580024","vslSign":"BKHC",
  4. "examRelNote":"Y","voyageFlightNo":"1084-186S","marketMftNote":"Y",
  5. "status":"ok","vslName":"UNI-PROSPER                        "}
複製代碼
我將 Ar = Split(Replace(.responsetext, """", ""), ",") 稍稍修改如下:
  1. Ar = Split(Trim(Replace(Replace(.responsetext, """", ""), "}", "")), ",")
複製代碼
  1. Ar(0) =  "msg:[執行成功]"
  2. Ar(1) =  "transTypeCd:海"
  3. Ar(2) =  "totGrossWeight":49376
  4. Ar(3) =  "destCd:VNCLI"
  5. Ar(4) =  "totPackQty:32"
  6. Ar(5) =  "declType:G5"
  7. Ar(6) =  "relDate:102\/09\/17"
  8. Ar(7) =  "totPackQtyUnit:PLT"
  9. Ar(8) =  "declNo:BE  02XE580024"
  10. Ar(9) =  "vslSign:BKHC"
  11. Ar(10) =  "examRelNote:Y"
  12. Ar(11) =  "voyageFlightNo:1084-186S"
  13. Ar(12) =  "marketMftNote:Y"
  14. Ar(13) =  "status:ok"
  15. Ar(14) =  "vslName:UNI-PROSPER"
複製代碼
如此執行起便無瑕玼了,謝謝您!

TOP

回復 16# joey0415
  1.         '  http://portal.sw.nat.gov.tw/APGQ/GB315!query?declNo=BE++02XE580024
  2.         '  "GET" 傳入 (Send) 之 XML 內容:
  3.         '  {"msg":"[執行成功]","transTypeCd":"海","totGrossWeight":49376,"destCd":"VNCLI",
  4.         '  "totPackQty":"32","declType":"G5","relDate":"102\/09\/17",
  5.         '  "totPackQtyUnit":"PLT","declNo":"BE  02XE580024","vslSign":"BKHC",
  6.         '  "examRelNote":"Y","voyageFlightNo":"1084-186S","marketMftNote":"Y",
  7.         '  "status":"ok","vslName":"UNI-PROSPER                        "}
  8.         AR = Split(Trim(Replace(Replace(.responsetext, """", ""), "}", "")), ",")
  9.         '  先去除 "、再者去除 }、接下來再將前後空白 (Space) 清空;最後才處理 Split() 並 Assign 給 AR
  10.         '  Ar :  Variant/String(0 to 14)
  11.         '  Ar(0) =  "msg:[執行成功]"
  12.         '  Ar(1) =  "transTypeCd:海"
  13.         '  Ar(2) =  "totGrossWeight":49376
  14.         '  Ar(3) =  "destCd:VNCLI"
  15.         '  Ar(4) =  "totPackQty:32"
  16.         '  Ar(5) =  "declType:G5"
  17.         '  Ar(6) =  "relDate:102\/09\/17"
  18.         '  Ar(7) =  "totPackQtyUnit:PLT"
  19.         '  Ar(8) =  "declNo:BE  02XE580024"
  20.         '  Ar(9) =  "vslSign:BKHC"
  21.         '  Ar(10) =  "examRelNote:Y"
  22.         '  Ar(11) =  "voyageFlightNo:1084-186S"
  23.         '  Ar(12) =  "marketMftNote:Y"
  24.         '  Ar(13) =  "status:ok"
  25.         '  Ar(14) =  "vslName:UNI-PROSPER"
複製代碼

TOP

本帖最後由 c_c_lai 於 2013-11-18 15:27 編輯

回復 18# stillfish00
請教一下,我把 .Navigate "http://portal.sw.nat.gov.tw/APGQ/GB315" 換成
.Navigate "http://portal.sw.nat.gov.tw/APGQ/GB309" 出口報單通關流程查詢

  1.        Set x = .document.getElementById("myform").getElementsByTagName("input")
  2.         x(2).Value = sID     '  填入號碼    (原本為 x(0).Value = sID )
  3.         x(11).Click          '  查詢        (原本為 x(1).Click )
複製代碼
執行到 ActiveSheet.PasteSpecial Format:="HTML" 卻發生了錯誤訊息,
請問應如何修正方屬正確? 謝謝你!

TOP

回復 23# GBKEE
多謝了!
正當我測試完成時,正好亦看到您送來的訊息,
對我幫助甚大,亦將您的註釋加入並應用,
再次言謝!
  1. Sub 出口報單放行單查詢結果()
  2.     Dim sID As String, sStatus As String
  3.     Dim x
  4.    
  5.     sID = InputBox("出口報單號碼", "出口報單放行資料查詢", "BE  02XE580024")
  6.     If sID = "" Then Exit Sub
  7.    
  8.     With CreateObject("InternetExplorer.Application")
  9.         .Visible = True     '  是否顯示 IE
  10.         .Navigate "http://portal.sw.nat.gov.tw/APGQ/GB309"
  11.         
  12.         Do While .readyState <> 4
  13.             DoEvents
  14.         Loop
  15.       
  16.         '  Set x = .document.getElementById("myform").getElementsByTagName("input")
  17.         '  x(1).Value = sID     '  填入號碼  ("declNo")
  18.         '  x(10).Click          '  查詢      ("查詢")
  19.         '  對於 x 的運用,此上下兩種表達方式決果一致;然下列方式可避免判斷上之誤判情事。
  20.         For Each x In .document.getElementsByTagName("input")
  21.             If x.Name = "declNo" Then x.Value = sID
  22.             If x.Value = "查詢" Then x.Click
  23.         Next
  24.         
  25.         Do While .document.getElementById("statusMsg").Value = ""
  26.             DoEvents
  27.         Loop
  28.       
  29.         sStatus = .document.getElementById("statusMsg").Value
  30.         If InStr(sStatus, "[執行成功]") <= 0 Then .Quit: MsgBox sStatus: Exit Sub
  31.                               
  32.         .document.body.innerHTML = .document.getElementById("queryResult").outerHTML
  33.         .execwb 17, 2       '  Select All
  34.         .execwb 12, 2       '  Copy selection
  35.                
  36.         ActiveSheet.[A1].Select
  37.         ActiveSheet.PasteSpecial Format:="HTML"     ', NoHTMLFormatting:=True
  38.         .Quit
  39.     End With
  40. End Sub
複製代碼

TOP

回復 26# GBKEE
彙整的蠻貼心的,在尾端我順便加上了自動調整蘭寬的處裡。
  1.         With ActiveSheet
  2.             .Cells.Clear
  3.             .[A1].Select
  4.             .PasteSpecial Format:="HTML"
  5.             .Cells.EntireColumn.AutoFit     '  自動調整欄寬
  6.         End With
複製代碼
謝謝囉!

TOP

回復 28# joey0415
試試這個:
  1. Sub 鉅享網()
  2.     Dim sID As String, sStatus As String, URL As String
  3.     Dim x
  4.    
  5.     URL = "http://www.cnyes.com/twstock/Institutional/1101.htm"
  6.     With CreateObject("InternetExplorer.Application")
  7.         .Visible = True     '  是否顯示 IE
  8.         .Navigate URL
  9.         
  10.         Do While .readyState <> 4
  11.             DoEvents
  12.         Loop
  13.         
  14.         For Each x In .Document.getelementsbytagname("input")
  15.             If x.Value = "查詢" Then x.Click: Exit For
  16.         Next
  17.                
  18.         .Document.body.innerHTML = .Document.getelementsbytagname("table")(1).outerHTML
  19.         .execwb 17, 2       '  Select All
  20.         .execwb 12, 2       '  Copy selection
  21.         
  22.         With ActiveSheet
  23.             .Cells.Clear
  24.             .[A2].Select
  25.             .PasteSpecial Format:="HTML"
  26.             .Cells.EntireColumn.AutoFit     '  自動調整欄寬
  27.         End With
  28.         .Quit
  29.     End With
  30. End Sub
複製代碼

TOP

        靜思自在 : 有時當思無時苦,好天要積雨來糧。
返回列表 上一主題