2015-05-11 3 views
0

Я пытаюсь ввести значение ячейки C4, которое получено из поля ввода, которое присваивает значение ячейке, в поле поиска после отправки на первой странице, но я не в состоянии, поскольку я продолжаю получать ошибку 438. Что-то не так с моими кодами после поля ввода?Как заполнить текстовые поля на 2-й странице

И есть ли способ, которым я могу получить коды до тех пор, пока ячейка C4 не будет присвоена значением в поле ввода, а затем продолжите заполнение второй страницы?

Кроме того, я использую Internet Explorer 11, каково должно быть мое objItem.FullName Like, если я хочу использовать открытый браузер для работы?

Option Explicit 
Const word1 As String = "C2" 
Const word2 As String = "C3" 
Const word3 As String = "C4" 

Public Sub Test() 
    Dim objWindow As Object 
    Dim objIEApp As Object 
    Dim objShell As Object 
    Dim objItem As Object 
    Dim wordthree As String 
    On Error GoTo Fin 
    Set objShell = CreateObject("Shell.Application") 
    Set objWindow = objShell.Windows() 
    For Each objItem In objWindow 
     If LCase(objItem.FullName Like "*iexplore*") Then 
      Set objIEApp = objItem 
     End If 
    Next objItem 
    If objIEApp Is Nothing Then 
     Set objIEApp = CreateObject("InternetExplorer.Application") 
     objIEApp.Visible = True 
    End If 
    With objIEApp 
     .Visible = True 
     .Navigate "google.com" 
     While Not .ReadyState = 4 
      DoEvents 
     Wend 
     .Document.all.q.Value = Range(word1).Value 
     '.Document.all.q.Value = Range(word2).Value 
     .Document.forms(0).submit 

    End With 
    3word = InputBox("Enter 3rd word: ") 
    Range("C4").Value = wordthree 
    With objIEApp 
     .Visible = True 
     While Not .ReadyState = 4 
      DoEvents 
     Wend 
     .Document.all.q.Value = Range(word3).Value 
     .Document.forms(0).submit 
    End With 
Fin: 
    If Err.Number <> 0 Then MsgBox "Error: " & _ 
     Err.Number & " " & Err.Description 
    Set objWindow = Nothing 
    Set objShell = Nothing 
End Sub 
+1

Я решил эту проблему –

ответ

0

Первое, что я могу заметить здесь, это то, что вы пытаетесь назвать свои переменные, начиная с числа. В мире VB (VBA, VB.Net и т. Д. Все включено), это недействительно & ваш код не будет работать.

Для получения дополнительной информации о правилах именования переменных см. https://msdn.microsoft.com/en-us/library/office/gg264773.aspx.

Update:

Следующая вещь & причина вы получаете ошибку, то, что вам нужно включить вызов, чтобы выйти из метода до обработки кода подпрограммы ошибка называется. Ваш код выше теперь работал правильно для меня с этим «exit sub» заявление добавлено.

.Document.all.q.Value = Range(word3).Value 
    .Document.forms(0).submit 
End With 

**Exit Sub** 

Fin: 
    If Err.Number <> 0 Then MsgBox "Error: " & _ 
+0

Да, это проблема, но это не причина проблемы OP. Если вы измените имя '3work' на что-то действительное, ошибка' 438' все еще встречается. – DeanOC

+0

Да, это моя вина. я изменил имя переменной здесь для целей конфиденциальности, не понял, что я поставил номер перед –

Смежные вопросы