返回列表 上一主題 發帖

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

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

本帖最後由 av8d 於 2014-8-18 13:54 編輯

登入用.rar (21.05 KB)
  1. Private Sub CommandButton3_Click()
  2. '帳密驗證
  3.     With CreateObject("InternetExplorer.Application")
  4.         .Navigate "https://cas.tycg.gov.tw/casserver/login?service=http%3A%2F%2Fe.tycg.gov.tw%2Fapp%2Fportal%2Flogin"
  5.    
  6.         Do While .Busy Or .ReadyState <> 4
  7.             DoEvents
  8.         Loop
  9.         
  10.         '帳號欄位
  11.         .Document.all("username").innerText = "A"
  12.         '密碼欄位
  13.         .Document.all("password").innerText = "B"
  14.         .Document.all("usernamebutton").Click
  15.         .Visible = True
  16.         '.Navigate "http://odis.tycg.gov.tw/HOME/Home_Splitter.aspx"
  17.     End With
  18. End Sub
複製代碼
帳號成功自動丟上去,到了密碼就卡住了,懇請大大們幫忙,謝謝
我會繼續在網路上尋找解答!

回復 25# GBKEE


    謝謝版主鼎力相助,完成如下
  1.     With Application
  2.         With .VBE.MainWindow
  3.             .WindowState = vbext_ws_Minimize
  4.             .Visible = False
  5.         End With
  6.     End With
複製代碼
真是受益良多~感激萬分!

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

回復 23# GBKEE


    謝謝版主~想再請教版主~
一般我們打開EXCEL後~
按下Alt+F11會打開程式碼~
是否有最小化程式碼的寫法呢?謝謝!

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

本帖最後由 av8d 於 2014-8-21 13:27 編輯

回復 20# GBKEE


    解決了~
我讓開EXCEL時,自動開啟程式碼,即可
  1. Private Sub Workbook_Open()
  2.     On Error Resume Next
  3.     Application.SendKeys ("%{F11}") '按下 Alt+F11 鍵
  4. End Sub
複製代碼
只是不清楚如何讓他最小化,努力查詢中
版主辛苦了~謝謝

TOP

本帖最後由 av8d 於 2014-8-21 10:35 編輯

回復 20# GBKEE


    版主再次麻煩您~真不好意思~
附上代碼
  1. Private Sub CommandButton1_Click()
  2.     With CreateObject("InternetExplorer.Application")
  3.         .Navigate "https://google.com"
  4.         .Visible = True

  5.         Do While .Busy Or .ReadyState <> 4
  6.             DoEvents
  7.         Loop
  8.         .Document.Focus
  9.     End With
  10. End Sub
複製代碼
以上是最簡易的Google開啟的網頁
-------------------------------------------------
以下非常重要~首先我把按這按鈕放上這個代碼後
儲存並關閉EXCEL
然後重新開啟,直接按下按鈕後
您會看到Google網頁很明顯的在EXCEL後面
該如何讓網頁在最上層呢?
----------------------------------------------------
發現一個現象~每當開啟後端程式碼區後
再執行按鈕就會正常將網頁在最上層
但是當檔案關閉,開啟檔案後直接按按鈕,網頁又會再度跑到EXCEL後面

TOP

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

TOP

回復 18# GBKEE


    謝謝版大~
目前剩下唯一問題~
每次開啟後網頁總是在EXCEL下層~
導致訊息視窗會存在的問題
(有使用.Document.Focus)
每個位子也測試過,皆無效

TOP

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

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

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

EX.JPG
2014-8-20 15:09


如 機關內部人事業務系統-登入 完成 (登入要 記住一天 以上),
  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
未命名.JPG
2014-8-20 15:09
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 君子立恆志,小人恆立志。
返回列表 上一主題