2016-11-21 115 views
0

我是VBA和編程的新手,我發現了一些在線代碼來自動化網頁處理。現在我只是想登錄到電子奧斯卡的網頁:網頁自動化使用VBA

Do While IE.Busy 
    Application.Wait DateAdd("s", 1, Now()) 
Loop 

Set objCollection = IE.document.getElementsByTagName("input") 
Set objName = IE.document.getElementsByTagName("name") 

i = 0 

While i < objCollection.Length 
    If objCollection(i).ID = "companyId" Then 

     ' Set text for search 
     objCollection(i).Value = "companyId" 

    Else 
     If objCollection(i).ID = "userId" Then 
      objCollection(i).Value = "uId" 
    Else 
     If objCollection(i).ID = "password" Then 
      objCollection(i).Value = "pwd" 
    Else 
     If objCollection(i).ID = "securityMsgAck1" Then 
      objCollection(i).Value = True 
    'Else 
     'If objName(i).Name = "securityMsgAck" Then 
      'objName(i).Value = True 
    'Else 
     'If objCollection(i).ID = "button" Then 
      'objCollection(i).Value = True 


      ' "Search" button is found 
      Set objElement = objCollection(i) 
         End If 
        End If 
       End If 
      End If 
     'End If 
    'End If 

    i = i + 1 
Wend 
objElement.Click ' click button to search 

當以AS-IS運行時。這段代碼打開了我試圖自動化的網頁,填寫了公司ID,用戶ID,密碼,並且似乎檢查了我確認該頁面的T & C的框。但是,每當我去掉了「securityMsgAck」它不再檢查框,並給我一個錯誤:

Run-time error '91': Object variable or With block variable not set.\

它也做到這一點,如果我註釋掉「securityMsgAck」,並取消了「按鈕」。看起來,我的代碼試圖檢查框,只要這兩個部分沒有執行,但是當它們是聲明要麼失敗之前,它可以嘗試按下,或者他們完全阻止它。我不太確定...任何意見,將不勝感激。提前致謝。

編輯:每當我取消了該代碼的任何部分,我的計劃也將不再填寫公司ID,用戶ID或密碼,有沒有檢查安全消息框沿...

+0

「按鈕」不會在本頁面上存在的ID,你應該使用類「BTN」 – h2so4

+0

@ H2SO4嗯,這是非常合情合理的,但我的計劃是在至少「嘗試」登錄(我認爲)它現在的樣子。我知道這是因爲我收到來自網頁的錯誤,在嘗試登錄之前,我沒有「檢查標記」安全消息來確認它。 – DukeLuke

回答

1

檢查複選框使用下面的代碼

ElseIf objcollection(i).ID = "securityMsgAck1" Then 
      objcollection(i).Checked = True 
+0

這不起作用。 – DukeLuke

+0

什麼不起作用?提供的代碼在我嘗試這個時會檢查複選框。 – h2so4

+0

它確實......對於遲到的迴應感到抱歉......我現在有限的時間在此宏上工作 – DukeLuke