Hi everybody,
I am relatively new to knowing anything VBA related. I am hoping one of you could help answer a question I have partaking in a bit of code I got and made changes to.
What I am trying to do is grab a bit of information from a website "Acer" to compare certain things. I can run the code and successfully open the website I am looking for, but it ends there. I cant seem to input my columns I have listed into the search bar and successfully .click the search button.
I get this error "Run-time error '91': Object variable or With block variable not set" at What.Item(0).Value = partnumber
Also sorry, couldn't figure out how to put it in its own box.
Sub Test()
Dim eRow As Long
Dim ele As Object
Set sht = Sheets("Sheet1")
RowCount = 1
sht.Range("A" & RowCount) = "1"
sht.Range("B" & RowCount) = "2"
sht.Range("C" & RowCount) = "3"
sht.Range("D" & RowCount) = "4"
sht.Range("E" & RowCount) = "5"
sht.Range("F" & RowCount) = "6"
sht.Range("G" & RowCount) = "7"
sht.Range("H" & RowCount) = "8"
sht.Range("I" & RowCount) = "9"
sht.Range("J" & RowCount) = "10"
sht.Range("K" & RowCount) = "11"
sht.Range("L" & RowCount) = "12"
sht.Range("M" & RowCount) = "13"
sht.Range("N" & RowCount) = "14"
sht.Range("O" & RowCount) = "15"
sht.Range("P" & RowCount) = "16"
sht.Range("Q" & RowCount) = "17"
sht.Range("R" & RowCount) = "18"
sht.Range("S" & RowCount) = "19"
sht.Range("T" & RowCount) = "20"
sht.Range("U" & RowCount) = "21"
sht.Range("V" & RowCount) = "22"
sht.Range("W" & RowCount) = "23"
sht.Range("X" & RowCount) = "24"
sht.Range("Y" & RowCount) = "25"
sht.Range("Z" & RowCount) = "26"
sht.Range("AA" & RowCount) = "27
sht.Range("AB" & RowCount) = "28"
sht.Range("AC" & RowCount) = "29"
sht.Range("AD" & RowCount) = "30"
sht.Range("AE" & RowCount) = "31"
sht.Range("AF" & RowCount) = "32"
eRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Set objIE = CreateObject("InternetExplorer.Application")
'For x = 2 To 2
'PartNumber = Cells(2, x)
'partnumber = Cells(4, 4)
partnumber = InputBox("PartNumber")
With objIE
.Visible = True
.navigate "http://www.acer.com/ac/en/US/search"
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
Set What = .document.getElementsByName("No")
What.Item(0).Value = partnumber
.document.getElementByName("Search").Click
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
For Each ele In .document.all
Select Case ele.classname
Case "result"
RowCount = RowCount + 1
Case "0"
sht.Range("A" & RowCount) = ele.innertext
Case "1"
sht.Range("B" & RowCount) = ele.innertext
Case "2"
sht.Range("C" & RowCount) = ele.innertext
Case "3"
sht.Range("D" & RowCount) = ele.innertext
Case "4"
sht.Range("E" & RowCount) = ele.innertext
Case "5"
sht.Range("F" & RowCount) = ele.innertext
Case "6"
sht.Range("G" & RowCount) = ele.innertext
Case "7"
sht.Range("H" & RowCount) = ele.innertext
Case "8"
sht.Range("I" & RowCount) = ele.innertext
Case "9"
sht.Range("J" & RowCount) = ele.innertext
Case "10"
sht.Range("K" & RowCount) = ele.innertext
Case "11"
sht.Range("L" & RowCount) = ele.innertext
Case "12"
sht.Range("M" & RowCount) = ele.innertext
Case "13"
sht.Range("N" & RowCount) = ele.innertext
Case "14"
sht.Range("O" & RowCount) = ele.innertext
Case "15"
sht.Range("P" & RowCount) = ele.innertext
Case "16"
sht.Range("Q" & RowCount) = ele.innertext
Case "17"
sht.Range("R" & RowCount) = ele.innertext
Case "18"
sht.Range("S" & RowCount) = ele.innertext
Case "19"
sht.Range("T" & RowCount) = ele.innertext
Case "20"
sht.Range("U" & RowCount) = ele.innertext
Case "21"
sht.Range("V" & RowCount) = ele.innertext
Case "22"
sht.Range("W" & RowCount) = ele.innertext
Case "23"
sht.Range("X" & RowCount) = ele.innertext
Case "24"
sht.Range("Y" & RowCount) = ele.innertext
Case "25"
sht.Range("Z" & RowCount) = ele.innertext
Case "26"
sht.Range("AA" & RowCount) = ele.innertext
Case "27"
sht.Range("AB" & RowCount) = ele.innertext
Case "28"
sht.Range("AC" & RowCount) = ele.innertext
Case "29"
sht.Range("AD" & RowCount) = ele.innertext
Case "30"
sht.Range("AE" & RowCount) = ele.innertext
Case "31"
sht.Range("AF" & RowCount) = ele.innertext
End Select
'Next ele
Next ele
End With
'Macro1
'End If
Set objIE = Nothing
End Sub
I am relatively new to knowing anything VBA related. I am hoping one of you could help answer a question I have partaking in a bit of code I got and made changes to.
What I am trying to do is grab a bit of information from a website "Acer" to compare certain things. I can run the code and successfully open the website I am looking for, but it ends there. I cant seem to input my columns I have listed into the search bar and successfully .click the search button.
I get this error "Run-time error '91': Object variable or With block variable not set" at What.Item(0).Value = partnumber
Also sorry, couldn't figure out how to put it in its own box.
Sub Test()
Dim eRow As Long
Dim ele As Object
Set sht = Sheets("Sheet1")
RowCount = 1
sht.Range("A" & RowCount) = "1"
sht.Range("B" & RowCount) = "2"
sht.Range("C" & RowCount) = "3"
sht.Range("D" & RowCount) = "4"
sht.Range("E" & RowCount) = "5"
sht.Range("F" & RowCount) = "6"
sht.Range("G" & RowCount) = "7"
sht.Range("H" & RowCount) = "8"
sht.Range("I" & RowCount) = "9"
sht.Range("J" & RowCount) = "10"
sht.Range("K" & RowCount) = "11"
sht.Range("L" & RowCount) = "12"
sht.Range("M" & RowCount) = "13"
sht.Range("N" & RowCount) = "14"
sht.Range("O" & RowCount) = "15"
sht.Range("P" & RowCount) = "16"
sht.Range("Q" & RowCount) = "17"
sht.Range("R" & RowCount) = "18"
sht.Range("S" & RowCount) = "19"
sht.Range("T" & RowCount) = "20"
sht.Range("U" & RowCount) = "21"
sht.Range("V" & RowCount) = "22"
sht.Range("W" & RowCount) = "23"
sht.Range("X" & RowCount) = "24"
sht.Range("Y" & RowCount) = "25"
sht.Range("Z" & RowCount) = "26"
sht.Range("AA" & RowCount) = "27
sht.Range("AB" & RowCount) = "28"
sht.Range("AC" & RowCount) = "29"
sht.Range("AD" & RowCount) = "30"
sht.Range("AE" & RowCount) = "31"
sht.Range("AF" & RowCount) = "32"
eRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Set objIE = CreateObject("InternetExplorer.Application")
'For x = 2 To 2
'PartNumber = Cells(2, x)
'partnumber = Cells(4, 4)
partnumber = InputBox("PartNumber")
With objIE
.Visible = True
.navigate "http://www.acer.com/ac/en/US/search"
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
Set What = .document.getElementsByName("No")
What.Item(0).Value = partnumber
.document.getElementByName("Search").Click
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
For Each ele In .document.all
Select Case ele.classname
Case "result"
RowCount = RowCount + 1
Case "0"
sht.Range("A" & RowCount) = ele.innertext
Case "1"
sht.Range("B" & RowCount) = ele.innertext
Case "2"
sht.Range("C" & RowCount) = ele.innertext
Case "3"
sht.Range("D" & RowCount) = ele.innertext
Case "4"
sht.Range("E" & RowCount) = ele.innertext
Case "5"
sht.Range("F" & RowCount) = ele.innertext
Case "6"
sht.Range("G" & RowCount) = ele.innertext
Case "7"
sht.Range("H" & RowCount) = ele.innertext
Case "8"
sht.Range("I" & RowCount) = ele.innertext
Case "9"
sht.Range("J" & RowCount) = ele.innertext
Case "10"
sht.Range("K" & RowCount) = ele.innertext
Case "11"
sht.Range("L" & RowCount) = ele.innertext
Case "12"
sht.Range("M" & RowCount) = ele.innertext
Case "13"
sht.Range("N" & RowCount) = ele.innertext
Case "14"
sht.Range("O" & RowCount) = ele.innertext
Case "15"
sht.Range("P" & RowCount) = ele.innertext
Case "16"
sht.Range("Q" & RowCount) = ele.innertext
Case "17"
sht.Range("R" & RowCount) = ele.innertext
Case "18"
sht.Range("S" & RowCount) = ele.innertext
Case "19"
sht.Range("T" & RowCount) = ele.innertext
Case "20"
sht.Range("U" & RowCount) = ele.innertext
Case "21"
sht.Range("V" & RowCount) = ele.innertext
Case "22"
sht.Range("W" & RowCount) = ele.innertext
Case "23"
sht.Range("X" & RowCount) = ele.innertext
Case "24"
sht.Range("Y" & RowCount) = ele.innertext
Case "25"
sht.Range("Z" & RowCount) = ele.innertext
Case "26"
sht.Range("AA" & RowCount) = ele.innertext
Case "27"
sht.Range("AB" & RowCount) = ele.innertext
Case "28"
sht.Range("AC" & RowCount) = ele.innertext
Case "29"
sht.Range("AD" & RowCount) = ele.innertext
Case "30"
sht.Range("AE" & RowCount) = ele.innertext
Case "31"
sht.Range("AF" & RowCount) = ele.innertext
End Select
'Next ele
Next ele
End With
'Macro1
'End If
Set objIE = Nothing
End Sub