在使用文本框向工作表输入数据时,为了加快输入速度,可以利用文本框的KeyDown事件,回车后自动输入并清空文本框,如下面的代码所示。
#001 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
#002 With TextBox1
#003 If Len(Trim(.Value)) > 0 Then
#004 If KeyCode = vbKeyReturn Then
#005 Sheet1.Range("A65536").End(xlUp).Offset(1, 0) = .Value
#006 .Text = ""
#007 End If
#008 End If
#009 End With
#010 End Sub
代码解析:
文本框的KeyDown事件,在输入数据并按<Enter>键后自动将数据录入到工作表A列最后一个非空单元格的下一个单元格中。
KeyDown事件在按下键盘按键时发生,语法如下:
Private Sub object_KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)
参数object是必需的,一个有效的对象。
参数KeyCode是必需的,代表被按下的键的键代码。
参数Shift是可选的,Shift、Ctrl 和Alt的状态。
第3行代码,为了防止误输入空白数据,使用Len 函数和Trim 函数检查文本框内是否为有效数据。
第4行代码,根据KeyCode参数值判断是否按下了回车键。如果用户按下了回车键,KeyCode参数返回常数vbKeyReturn。
第5、6行代码,将文本框数据输入到工作表A列的最后一个单元格内,同时清空文本框内容准备下一次输入。