执行打印命令后,将焦点设置在文本框上

时间:2017-12-18 04:31:53

标签: excel vba excel-vba

请帮我说明以下情况: 当我用vba编写print命令的代码时,它运行正常。

但是在运行打印命令之后,光标不会专注于文本框。

我必须使用命令将光标聚焦在文本框上? 非常感谢你。

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

因为我正在为文本框上的扫描条形码编写宏,所以我需要在执行打印后自动处理,它可以继续在文本框上接收扫描条形码,在扫描条形码之前不必点击文本框。

1 个答案:

答案 0 :(得分:0)

  1. 首先检查是否有任何错误消息以及代码所在的位置(模块,用户表单,工作表或工作簿代码)。
  2. 您确定已执行If TextBox1.Text = "PRINT"条件吗?通过插入beep命令,即时窗口的一些Debug.Print信息或Stop命令来检查这一点,您可以通过按F8手动检查代码继续。
  3. 您可以尝试Windows(ThisWorkbook.name).Activate而不是ThisWorkbook.Activate,特别是如果您使用多个工作簿并进行一些选择或激活。
  4. 如果TextBox位于MultiPage控件的页面上,则应首先激活此页面:例如Multipage1.Value = 0(...)然后通过TextBox1.SetFocus设置焦点。
  5. 不要参考:-) UserForm1.TextBox1.SetFocus,但如果这是您的UserForm模块的代码,请使用Me.TextBox1.SetFocusTextBox1.SetFocus :-)。
  6. 你也可以在TextBox上执行Click()事件,虽然这不是最好的编程风格:TextBox1_Click