2017-12-18 159 views
0

請幫助我以下情況: 當我通過vba編寫打印命令的代碼時,它運行OK。執行打印命令後將焦點置於文本框

但是在運行打印命令後,光標不會集中在文本框上。

我必須使用命令來將光標對焦於文本框? 非常感謝。

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

因爲我寫在文本掃描條形碼的宏,所以我需要自動過程中進行打印後,它可以繼續收到文本掃描條形碼,沒有必須掃描條形碼之前單擊文本框。

+1

你有沒有嘗試過'TextBox1.SetFocus'?或'Me.TextBox1.SetFocus'? – 0m3r

+0

我已經插入了您的想法,但光標仍然不會集中在Textbox1上。 –

+0

可能重複的[VBA - 如何在文本框中的特定位置設置光標?](https://stackoverflow.com/questions/28399480/vba-how-to-set-cursor-in-a-specific-position在文本框) – Luuklag

回答

0
  1. 首先檢查是否有任何錯誤消息以及代碼的位置(模塊,用戶表單,工作表或工作簿代碼)。
  2. 您確定您的If TextBox1.Text = "PRINT"條件已執行嗎?通過插入一個beep命令,一些Debug.Print信息的立即窗口或Stop命令來檢查這個命令,允許你通過按F8來手動檢查代碼延續。
  3. 您可以嘗試Windows(ThisWorkbook.name).Activate而不是隻有ThisWorkbook.Activate,尤其是如果您使用多個工作簿並進行一些選擇或激活。
  4. 如果位於多頁控件頁面上的文本框應該先激活此頁面: Multipage1.Value = 0(...)然後通過TextBox1.SetFocus設置焦點。
  5. 不要參考:-) UserForm1.TextBox1.SetFocus,但使用Me.TextBox1.SetFocusTextBox1.SetFocus :-)如果這是在您的UserForm模塊中的代碼。
  6. 你也可以執行你的文本框一個點擊()事件,雖然這不是最好的編程風格:TextBox1_Click
+0

我試過讓它成爲您的推薦,但光標仍然不會集中在文本框上。 –

+0

這部分代碼位於哪個確切的程序?這是一個用戶窗體控件事件,如用戶窗體中的xy_Click()或xy_Change,還是工作表過程,並在工作表中放置了一個TextBox? –

+0

(2)請編輯您的文章並添加您輸出的代碼以及引用TextBox1的任何事件代碼,例如TextBox1_Change,TextBox1_Click,TextBox1_Exit ... –