【问题标题】:Set focus on textbox after performing print command执行打印命令后将焦点设置在文本框上
【发布时间】:2017-12-18 17:09:36
【问题描述】:

请帮我解决以下问题: 当我通过 vba 为打印命令编写代码时,它运行正常。

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

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

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

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

【问题讨论】:

  • 你试过TextBox1.SetFocus 吗?或Me.TextBox1.SetFocus ?
  • 我已经按照你的想法插入了,但是光标仍然没有聚焦在 Textbox1 上。
  • @Luuklag:当我使用该代码时,textbox1 仅显示“()”,我仍然无法继续扫描条形码。我想在运行打印命令之后继续扫描条形码,但不需要点击那个文本框。
  • @LuongTieumuoi 不要将"()" 作为字符串,而是使用您自己的值。

标签: vba excel


【解决方案1】:
  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,但如果这是您的用户窗体模块中的代码,请使用Me.TextBox1.SetFocusTextBox1.SetFocus :-)。
  6. 您也可以在 TextBox 上执行 Click() 事件,尽管这不是最好的编程风格:TextBox1_Click

【讨论】:

  • 我试着把它作为你的推荐,但光标仍然没有聚焦在文本框上。
  • 这部分代码所在的具体过程是什么?这是用户窗体中的用户窗体控件事件,例如 xy_Click() 或 xy_Change,还是在工作表中放置一个 TextBox 的 Worksheet 过程?
  • (2) 请编辑您的帖子并添加您的打印代码以及任何引用 TextBox1 的事件代码,例如TextBox1_Change、TextBox1_Click、TextBox1_Exit ...
猜你喜欢
  • 1970-01-01
  • 2016-05-23
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多