2017-12-18 157 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 ... –