2017-12-18 2 views
0

Bitte helfen Sie mir Fall unten: Wenn ich Code für den Druckbefehl von VBA schreiben dann läuft es OK.Legen Sie den Fokus auf Textbox nach dem Ausführen von Druckbefehl

Aber nach dem Ausführen Druckbefehl dann Cursor nicht auf Textfeld konzentrieren.

Was muss ich verwenden, um den Cursor auf die Textbox zu fokussieren? Vielen Dank.

If TextBox1.Text = "PRINT" Then 
    ActiveSheet.PrintOut 
    TextBox1.Value = "" 
    Call CData 
    ThisWorkbook.Save 
    ThisWorkbook.Activate 
    UserForm1.TextBox1.SetFocus 
End If 

Weil ich Makro auf Textbox für Scan-Barcode schreibe, also muss ich in den automatischen Prozess nach dem Druck durchführen, kann es Scan-Barcode auf Textbox weiterhin erhalten, müssen nicht auf Textbox klicken, bevor Scan-Barcode.

+1

Sie haben versucht, 'TextBox1.SetFocus' gerade? oder 'Me.TextBox1.SetFocus'? – 0m3r

+0

Ich habe bereits als Ihre Idee eingefügt, aber der Cursor immer noch nicht auf Textbox1 konzentrieren. –

+0

Mögliches Duplikat von [VBA - Wie setze ich Cursor in einer bestimmten Position in einer Textbox?] (Https://stackoverflow.com/questions/28399480/vba-how-to-set-cursorin-a-specific-position (in-a-textbox) – Luuklag

Antwort

0
  1. Überprüfen Sie zuerst, ob eine Fehlermeldung vorliegt und wo sich Ihr Code befindet (Modul, Benutzerformular, Arbeitsblatt oder Arbeitsmappencode).
  2. Sind Sie sicher, dass Ihre If TextBox1.Text = "PRINT" Bedingung ausgeführt wird? Überprüfen Sie dies, indem Sie einen beep Befehl, einige Debug.Print Informationen für das unmittelbare Fenster oder einen Stop Befehl eingeben, mit dem Sie die Codefortsetzung manuell überprüfen können, indem Sie F8 drücken.
  3. Sie könnten versuchen Windows(ThisWorkbook.name).Activate statt nur ThisWorkbook.Activate, vor allem, wenn Sie mehr als eine Arbeitsmappe verwenden und einige Auswahl oder Aktivierung vornehmen.
  4. Wenn sich die TextBox auf einer Seite eines MultiPage-Steuerelements befindet, sollten Sie diese Seite zuerst aktivieren: z. Multipage1.Value = 0 (...) und dann den Fokus über TextBox1.SetFocus setzen.
  5. Nicht referenzieren :-) UserForm1.TextBox1.SetFocus, aber verwenden Sie Me.TextBox1.SetFocus oder TextBox1.SetFocus :-), wenn dies Code mitIN Ihrem UserForm-Modul ist.
  6. Sie könnten auch einen Click() Ereignis auf Ihrer TextBox durchführen, obwohl das nicht beste Art der Programmierung ist: TextBox1_Click
+0

Ich habe versucht, es als Ihre Empfehlung, aber Cursor noch nicht auf Textfeld konzentrieren. –

+0

Welches ist die genaue Prozedur, in der sich dieser Teil des Codes befindet? Ist dies ein UserForm-Steuerelementereignis wie xy_Click() oder xy_Change in Ihrer UserForm oder handelt es sich um eine Worksheet-Prozedur mit einer TextBox, die in ein Blatt eingefügt wird? –

+0

(2) Bitte bearbeiten Sie Ihren Post und fügen Sie auch Ihren Code, der ausdruckt, sowie jeden Ereigniscode, der sich auf TextBox1 bezieht, z. TextBox1_Change, TextBox1_Click, TextBox1_Exit ... –

Verwandte Themen