Bei Fehler, Wert "0" schreiben/fortfahren
15.09.2013 12:44:47
Sandro
Aber nun zu meinem Problem/Herausforderung:
Ich möchte ein Spiel machen, bei dem man zu einem vorgegebenen "Grundwort" entweder ein Wort am Anfang oder am Ende hinzufügen muss. Diese beiden Wörter werden dann zusammengesetzt und bei Google gesucht. Wer die wenigsten Suchergebnisse, aber nicht 0 hat, hat gewonnen. Der Excelteil funktioniert, allerdings blieb das Skript in VBA bis jetzt immer hängen, wenn ein Suchbegriff gar keine Ergebnisse lieferte.
Dieses Problem konnte ich mit "On Error GoTo Next1" ('Next1' als Sprungmarke) lösen. Jetzt hätte ich aber gerne, dass im Falle eines Fehlers (der nur dadurch entsteht, dass keine Ergebnisse geliefert werden), eine "0" in die Zelle geschrieben wird.
(Wenn Ergebnisse vorliegen, wird der Satz bei Google oben in der Ecke "Ungefähr X Suchergebnisse (Y Sekunden)" in die Zelle geschrieben.) Es handelt sich aber ja um die Zellen "'PC-Hirn!H2:H8'" und nicht nur um eine, daher funktioniert ein fester "Range("'PC-Hirn'!H8").Value = "0"" ja nicht...
Sub Start_BeiKlick()
Dim IEApp As Object, result As Object, Zelle As Range
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = True
Bereich = 2
Zufall = Int((Bereich * Rnd) + 1)
Range("'PC-Hirn'!B1") = Zufall
Bereich2 = Range("'PC-Hirn'!B4")
Zufall = Int((Bereich2 * Rnd) + 1)
Range("'PC-Hirn'!B2") = Zufall
For Each Zelle In Range("'PC-Hirn'!H2:H8")
IEApp.Navigate "http://www.google.com/search?q=%22" & Zelle.Text & "%22"
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Document.ReadyState = "complete"
On Error GoTo Next1
Set result = IEApp.Document.getelementbyid("resultStats")
If Not result Is Nothing Then Zelle.Offset(0, 1) = result.innertext
Next1:
Next
IEApp.Quit
Set IEApp = Nothing
End Sub
Vielen Dank schonmal für etwaige Lösungsvorschläge
mit freundlichen Grüßen
Sandro Alessi