2016-09-18 2 views
0

私はvbaを新しくコーディングしていますので、皆さんから助けが必要です。 このvbaコードのPurpOse: 1.公開インターネットエクスプローラー 2.私のユーザーIDは&パスワードとログインしてください。 3.現在の日付を選択します。 4.最初のドロップダウンから特定のオプション(たとえばX1)を選択します。 5.次に、2番目のドロップダウンから特定のオプションを選択します(X1を選択した後のY1、X2の別のオプションを2番目のドロップダウンにする場合)。 6. 3番目のドロップダウンでZ1オプションを選択します.2番目のドロップダウンでY1を選択している場合にのみ表示されます。 7.選択内容を保存します。インターネットエクスプローラでvbaを使用してWebページで処理をドロップする

これで、手順4まで正しく実行されるコードが作成されましたが、その後は2番目と3番目のドロップダウンで正しいオプションを選択できません。 理由を知らない。私が使用しています

コード:

Dim HTMLDoc As HTMLDocument 
Dim oBrowser As InternetExplorer 
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 
Private Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" _ 
      (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long 

Const SW_MAXIMIZE = 3 
Const SW_SHOWNORMAL = 1 
Const SW_SHOWMINIMIZED = 2 
Private Sub Merchtimetracker_Click() 
Dim oHTML_Element As IHTMLElement 
Dim sURL As String 
Dim ie As Object 
Set ie = CreateObject("internetexplorer.application") 

On Error GoTo Err_Clear 
With ie 
    .Visible = True 
    apiShowWindow ie.hwnd, SW_MAXIMIZE 
    .navigate "https://xxxxxxx" 

Do While .Busy 
    DoEvents 
Loop 

Do While .readyState <> 4 
    DoEvents 
Loop 

End With 

Set emailid = ie.document.getelementbyid("emailid") 
emailid.Value = "xxxxxx" 

Set Password = ie.document.getelementbyid("password") 
Password.Value = "xxxxx" 

ie.document.getelementsbyname("login_now")(0).Click 

Err_Clear: 
If Err <> 0 Then 
Err.Clear 
Resume Next 
End If 

    Do While ie.readyState <> 4 Or ie.Busy = True 
     DoEvents 
    Loop 

    ie.document.getelementbyid("datepicker").Value = Format(Date, "yyyy-mm-dd") 'write "Format (Date, "yyyy-mm-dd")" when want to give today's date and if not then just write ("2016-09-13") 

Set project = ie.document.getelementbyid("project") 

For i = 0 To project.Options.Length - 1 
     If project.Options(i).Text = "X1" Then 
      project.selectedindex = i 
     For j = 0 To task.Options.Length - 1 
      If task.Options(j).Text = "Y1" Then 
         task.selectedindex = j 
       Exit for 
      End If 
     Next j 
      Exit For 
     End If 
Next i 

End subcode 

答えて

0

をここでは、コンボボックスに値を渡すために(主に)簡単な方法です。

Sub passValueToComboBox1() 
    Dim ie As Object 
    Dim oHTML_Element As IHTMLElement 

    Set ie = CreateObject("InternetExplorer.Application") 
    ie.Visible = True 
    ie.navigate "http://peterschleif.bplaced.net/excel/combobox/index.php" 
    While ie.Busy Or ie.readyState <> 4: DoEvents: Wend 

    Set oHTML_Element = ie.document.getElementsByName("selectedReportClass")(0) 
    If Not oHTML_Element Is Nothing Then oHTML_Element.Value = "com.db.moap.report.FUBU7" 

    For Each oHTML_Element In ie.document.getElementsByTagName("input") 
     If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For 
    Next 
End Sub 
+0

あなたのご意見ありがとうございますが、私はあなたが何を言おうとしているのか理解できません。私はちょうど初心者ですので、あなたは最も正しいバージョンを書いているかもしれませんが、私はそれを取得していません。一例で一番簡単にしてください。あなたは助けに感謝します。 –

関連する問題