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

问题描述 投票:0回答:1

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

但是在运行打印命令之后,光标不会聚焦在文本框上。

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

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

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

excel vba excel-vba
1个回答
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.SetFocusor TextBox1.SetFocus :-)。
  6. 您还可以在TextBox上执行Click()事件,尽管这不是最佳编程风格:TextBox1_Click
© www.soinside.com 2019 - 2024. All rights reserved.