VBA Send Keys und On Error

Hallo Zusammen,

ich habe gleich zwei Fragen…

Zu Einen funktioniert mein Code für die Send Keys Anweisung nicht richtig. Es taucht immer nur auf „Num ein“. Ich nutze folgenden Code:

Option Explicit

Private Sub CommandButton1_Click()
SendKeys „a“
End Sub

Und dann verstehe ich, trotz googlen die „On Error GoTo“ Anweisung nicht. :frowning:

Folgendes:
Wenn ich auf CommandButton7 klicke, Soll der Webbrowser in Excel zurück. Wenn er aber nicht mehr zurück kann, kommt ein Fehler Code (Debuggen, Abbrechen etc.).Es soll aber eine MsgBox auftauchen (nicht möglich oder so)

— Code —

Private Sub CommandButton7_Click()
WebBrowser1.GoBack
End Sub


Freundliche Grüße
dnbma

Hallo,

ich habe gleich zwei Fragen…

ich beantworte mal eine davon. :smile:

Zu Einen funktioniert mein Code für die Send Keys Anweisung nicht
richtig. Es taucht immer nur auf „Num ein“. Ich nutze folgenden
Code:

Option Explicit

Private Sub CommandButton1\_Click()
 SendKeys "a"
End Sub

wenn Du auf den Button klickst, hat der den Focus und deshalb wird das ‚a‘ auch an den Button gesendet.

Wenn Dein ‚a‘ zum Beispiel an die TextBox1.Text gesendet werden soll, dann musst Du vor Sendkeys noch einfügen:

TextBox1.Setfocus

Sendkeys simuliert einfach nur Tastenanschläge. Die kommen dann auch dort an, wo die Eingabe der Tastatur auch ankommen würde. Du musst im Code erst dafür sorgen, daß das gewünschte Steuerelment, Fenster, Anwendung … in dem Moment auch wirklich aktiv ist.

Gruß Rainer

Hallo,

zu 2.)

On Error Goto verzweigt, wenn ein Fehler auftritt.
Dein Beispiel kann ich nicht nachvollziehen, ich habe kein VBA.
Aber ein Beispiel mit VB6, was passiert, wenn ein Fehler auftritt …
(Das läuft bei Dir auch)

Private Sub Test()
 Dim a As Integer, b As Integer, c As Integer
 On Error GoTo Fehlerausgang
 a = InputBox("Bitte eine Zahl eingeben", "Eingabefenster", 1)
 b = 4
 c = b / a
 MsgBox "Es wurde " + CStr(a) + " eingegeben"
 Exit Sub

Fehlerausgang:
 On Error GoTo 0
 MsgBox "Fehler: " + CStr(Err.Description)
End Sub

Gim in die Inputbox mal eine Zahl ein, mal eine Null und mal ein anderes Zeichen …

Gruß Rainer

Hi dnbma,

nicht richtig. Es taucht immer nur auf „Num ein“. Ich nutze
Private Sub CommandButton1_Click()
SendKeys „a“
End Sub

Nicht nachvollziehbar in Excel2000-Vba. Egal ob CB im Blatt oder auf UF. es kommt keine Fehlermeldung, estut sich einfach nichts. Ob Num-Lock auf der Tastatur eingeschaltet ist oder nicht spielt keine Rolle.

Wenn ich auf CommandButton7 klicke, Soll der Webbrowser in
Excel zurück. Wenn er aber nicht mehr zurück kann, kommt ein
Fehler Code (Debuggen, Abbrechen etc.).Es soll aber eine
MsgBox auftauchen (nicht möglich oder so)

Eine Variante:

Private Sub CommandButton1_Click()
On Error GoTo Fehler
WebBrowser1.GoBack
On Error GoTo 0
MsgBox „hier geht’s weiter im Code“
Exit Sub
Fehler:
MsgBox "Nr: " & Err.Number & Chr(13) & "Art: " & Err.Description & Chr(13)
Resume Next
End Sub

Gruß
Reinhard

Danke für die Hilfen.

Klapp alles und verstehn tus ich jetzt auch soweit ich es brauche ^^.

Grüße
dnbma

Hallo dnbma,

Und dann verstehe ich, trotz googlen die „On Error GoTo“
Anweisung nicht. :frowning:

Die Beispiele sollten mal klar sein.

„On Error Goto“ bewirkt, dass im Error-Handler das entsprechende Sprungziel eingetragen wird. Der Befehl hat zunächst einmal keine Auswirkung auf das Programm.

Erst wenn ein Fehler auftritt, macht sich der Unterschied bemerkbar. Ohne „One Error“ erscheint die Fehlermeldung vom BASIC, meist nur mit „Fehler nnnn“ und das Programm wird abgebrochen.
Mit „On Error Goto“ wird bei einem Fehler die Programmausführung unterbrochen und zum angegebenen Laber verzweigt. Nun hast du als Programmierer die Möglichkeit den Fehler zu analysieren und so zu reagieren wie du es willst.

Mit „Resume Next“ fährt dann VB(A) mit der Ausführung des Befehls welcher NACH demjenigen steht, welcher den Fehler verursacht hat, fort. Du kannst aber an dieser Stelle auch z.B. mit „Exit Sub“ die Routine verlassen.

MfG Peter(TOO)

Grüezi dnbma

ich habe gleich zwei Fragen…

Zu Einen funktioniert mein Code für die Send Keys Anweisung
nicht richtig. Es taucht immer nur auf „Num ein“. Ich nutze
folgenden Code:

Option Explicit

Private Sub CommandButton1_Click()
SendKeys „a“
End Sub

Mir stellt sich hier eher die Frage, warum Du mit dem (potentiell unsicheren) SemdKeys() arbeiten willst (musst?) statt das betreffende Objekt direkt anzusprechen?


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -