返回列表 上一主題 發帖

[發問] 執行階段錯誤 '438': 物件不支援此屬性或方法

回復 1# av8d
網頁在桃園縣政府民政局內部嗎?無法連上線,
你可查看這登入網頁的原始碼,可參考這裡
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 3# av8d
  1. Option Explicit
  2. Dim FormDLL As String
  3. Sub Ie_document()
  4.     Dim URL As String, Ie As Object, A As Object, i
  5.    ' URL = "D:\原始檔.htm"
  6.     URL = "https://cas.tycg.gov.tw/casserver/login?service=http%3A%2F%2Fe.tycg.gov.tw%2Fapp%2Fportal%2Flogin"
  7.     Set Ie = CreateObject("InternetExplorer.Application")
  8.     With Ie
  9.         .Navigate URL
  10.         .Visible = True
  11.         Do While .Busy Or .readyState <> 4:         Loop
  12.         Stop   '網頁上輸入 帳號,密碼 後繼續程式
  13.         On Error Resume Next
  14.         Set A = .document.ALL
  15.         For i = 0 To A.Length - 1
  16.             Cells(i + 1, "A") = A(i).TAGNAME
  17.             Cells(i + 1, "B") = A(i).ID
  18.             Cells(i + 1, "C") = A(i).Name
  19.             Cells(i + 1, "D") = A(i).Value
  20.             Cells(i + 1, "E") = A(i).INNERTEXT
  21.             Cells(i + 1, "F") = A(i).Type
  22.         Next
  23.         '到工作表上看 [帳號,密碼]在哪一個元素上
  24.     End With
  25. End Sub
  26. Sub Ie()
  27.     Dim URL As String, Ie As Object, i
  28.     'URL = "D:\原始檔.htm"
  29.     URL = "https://cas.tycg.gov.tw/casserver/login?service=http%3A%2F%2Fe.tycg.gov.tw%2Fapp%2Fportal%2Flogin"
  30.    
  31.     Set Ie = CreateObject("InternetExplorer.Application")
  32.     With Ie
  33.         .Navigate URL
  34.         .Visible = True
  35.         Do While .Busy Or .readyState <> 4:         Loop
  36.         With .document.getElementsByTagName("input")
  37.             .Item("pincode").Value = "pincode"
  38.             .Item("pinpassword").Value = "pinpassword"
  39.             
  40.             '****************
  41.             .Item("username").Value = "帳AAA號"
  42.             For i = 0 To .Length - 1
  43.                 If .Item(i).ID = "password" And .Item(i).Name = "password" Then
  44.                                  '大小寫有分別
  45.                    .Item(i).Value = "TEST"
  46.                 End If
  47.             Next
  48.             '********************
  49.             .Item("pinbutton").Click  '這裡我無法測試
  50.         End With
  51.     End With
  52.    
  53. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-8-19 08:12 編輯

回復 5# av8d
帳號是填在  帳AAA號
密碼是填在  TEST 上  這樣?
是不是因為他是用ASP寫的~所以會比較複雜?
Sub Ie_document()
Sub Ie()
是選擇一個即可?

是帳號填上   "帳AAA號"
是密碼填上   'TEST"
是不是因為他是用ASP寫的~所以會比較複雜? ,應該不是
Sub Ie_document() 程式讓你明暸網頁上要輸入元素,的TAGNAME, ID, NAME, VALUE ,INNERTEXT,好對號入座
Sub Ie() 執行你要的動作
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-8-19 11:10 編輯

回復 7# av8d
  1. .Document.all("username").innerText = "***"
複製代碼
這語法是錯誤的應如下
  1. .Document.all("username").VALUE ="***"
複製代碼
必須是已登出,才有登入的網頁可用,何謂重複登入??
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 10# av8d
因是內部網頁,無法為你測試.
你自行試試使用On Error Resume Next 忽略錯誤.可否成功.

如果會跳出網頁訊息
試試看
  1. .Document.Focus
  2. Application.SendKeys ("~") '按下 Enter 鍵
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 12# av8d
  1. .Document.Focus
複製代碼
網頁文件主體的選定

JavaScript 徹底剖析 電子書(全書下載)
的3-17.htm的原始檔 用小作家存檔(3-17.htm)
  1. <HTML>
  2. <HEAD>
  3. <TITLE>計算體重</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <SCRIPT Language="JavaScript">
  7. //彈出輸入視窗
  8. height=prompt("請問您的身高?",170)
  9. if(height) //判斷是否有回傳資料
  10. {
  11. //呼叫計算體重的函式
  12. weight=test(height)
  13. //彈出標準體重視窗
  14. alert("您的標準體重"+weight+"公斤")
  15. }
  16. //計算體重函式
  17. function test(height)
  18. {
  19. var weight=height-110
  20. //傳回函式的運算結果
  21. return weight
  22. }
  23. </SCRIPT>
複製代碼
3-17.htm的原始檔, 存檔(3-17.htm),執行試試看
  1. Option Explicit
  2. Sub EX()
  3.     Dim URL As String
  4.   ' Set_FormDLL
  5.     URL = "D:\3-17.htm"  '
  6.     With CreateObject("InternetExplorer.Application")
  7.         .Navigate URL
  8.         .Visible = True
  9.         
  10.         Application.Wait Time + #12:00:01 AM# '等候一秒
  11.         Application.SendKeys "{DEL}", True '按下 DEL 鍵
  12.         Application.SendKeys "ABC", True   '輸入 ABC 鍵
  13.         Application.Wait Time + #12:00:01 AM# '等候一秒
  14.         
  15.         Application.SendKeys ("~") '按下 Enter 鍵

  16.         '.Quit
  17.     End With
  18. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-8-20 15:46 編輯

回復 17# av8d
如何讓開啟網頁後~讓網頁為最上層

你的問題是 login 成功 -> 開啟一新的IE的視窗,無法取得(新的IE)的資料(元素)



如 機關內部人事業務系統-登入 完成 (登入要 記住一天 以上),
  1. With IE
  2.         .Navigate URL 'login
  3.         .Visible = True
  4.         Do While .Busy Or .readyState <> 4:         Loop
  5.         .Document.getElementsByTagName("OPTION")(2).Selected = True '記住一天
  6.         '或是
  7.         '.Document.getElementsByTagName("SELECT")(0).Value = "week" '記住一個月
  8.    
複製代碼
程式碼直接進入 機關內部人事業務系統的iIE ,不必由登入網頁進入
機關內部人事業務系統的URL
可如圖 : 在IE主體上,按下右鍵, 選取內容,內容的視窗,滑鼠複製URL
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 19# av8d
這是內部網頁.幫不上忙.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 22# av8d
  1. Dim IE As Object
  2. Sub CommandButton1_Click()
  3.     Set IE = CreateObject("InternetExplorer.Application")
  4.     With IE
  5.         .Navigate "https://google.com"
  6.         .Visible = False  'ie 不顯示 替代IE最小化的指令        
  7.         '.Visible = True   'ie 顯示
  8.         'IE最小化要動用到API函數,可指定上,右,高,寬 替代IE最小化的指令
  9.         '.Top = 1
  10.         '.Left = 1
  11.         '.Width = 1
  12.         '.Height = 1
  13.         Do While .Busy Or .readyState <> 4
  14.             DoEvents
  15.         Loop
  16.     End With
  17. End Sub
  18. Sub Ex() '其他程式中呼叫IE
  19.     MsgBox IE.document.getElementsByTagName("Title")(0).innertext
  20.     IE.Quit
  21.     Set IE = Nothing
  22. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 24# av8d
  1. Option Explicit
  2. Sub Ex()
  3.     With Application                    'Excel 物件
  4.         .WindowState = xlMinimized      '視窗最小化
  5.       '  .Visible = False                '決定物件是否可見:不可見
  6.         With .VBE.MainWindow            'VBA視窗 (Window 物件)
  7.             .Visible = True             'Alt+F11
  8.             .WindowState = vbext_ws_Maximize        '視窗最大化
  9.                         '= vbext_ws_Normal          '視窗一般化
  10.             Application.Wait Time + #12:00:02 AM#   '暫停2秒
  11.             .WindowState = vbext_ws_Minimize       '視窗最小化
  12.         '    .Visible = False            'Alt+q
  13.         End With
  14.       '  .WindowState = xlMaximized      '視窗最大化
  15.        ' .Visible = True                '決定物件是否可見:可見
  16.     End With
  17. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題