一、SendKeys语法介绍
expression.SendKeys(Keys, Wait)
语句功能:将击键发送给活动应用程序。
语法如下:
expression.SendKeys(Keys, Wait)
expression 可选。该表达式返回一个 Application 对象。
Keys Variant 类型,必需。要发送的键或者组合键,以文本方式表示。
Wait Variant 类型,可选。如果该值为 True,则 Microsoft Excel 等待击键处理完后再将控制返回到宏;如果该值为 False(或者省略该参数),则宏继续执行而不等待击键处理完毕。
说明:本方法将击键放到键盘缓冲区。某些情况下,在调用要使用击键的方法之前必须先调用此方法。例如,若要往对话框中发送密码,则必须在显示对话框之前调用 SendKeys 方法。
Keys 参数可指定任何单个键或与 Alt、Ctrl 或 Shift 的组合键(或者这些键的组合)。每个键可用一个或多个字符表示。例如,"a" 表示字符 a,或者 "{ENTER}" 表示 Enter。
若要指定在按相应键时不会显示的字符(例如,Enter 或 Tab),请使用下表所列的代码来表示相应的键。表中的每个代码表示键盘上的一个键。
二、SendKeys代码示例
Public MyRow As Integer
Private Sub Workbook_Open()
Application.OnKey key:="{F8}", procedure:="MyAutoInput1"
Application.OnKey key:="{F9}", procedure:="MyAutoInput2"
End Sub
代码解释:按下F1键,执行MyAutoInput8,按下F9,执行MyAutoInput2
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
MyRow = Target.Row
End Sub
代码解释:每选择不同的单元格,都将其所处的行号传递给变量MyRow
接下来,还有两个过程的代码如下:
Sub MyAutoInput1()
ActiveSheet.Cells(MyRow, 7).Value = 800
End Sub
代码解释,在当前行的7列自动输入数值800
Sub MyAutoInput2()
ActiveSheet.Cells(MyRow, 7).Value = 600
End Sub
代码解释,在当前行的7列自动输入数值600
三、知识拓展
若要指定在按相应键时不会显示的字符(例如,Enter 或 Tab),请使用下表所列的代码来表示相应的键。表中的每个代码表示键盘上的一个键。
键 代码
Backspace {BACKSPACE} or {BS}
Break {BREAK}
Caps Lock {CAPSLOCK}
Clear {CLEAR}
Delete 或 Del {DELETE} 或 {DEL}
End {END}
Enter ~(波形符)
Enter(数字小键盘) {ENTER}
Esc {ESCAPE} 或 {ESC}
F1 到 F15 {F1} 到 {F15}
Help {HELP}
Home {HOME}
Ins {INSERT}
Num Lock {NUMLOCK}
Page Down {PGDN}
Page Up {PGUP}
Return {RETURN}
Scroll Lock {SCROLLLOCK}
Tab {TAB}
向上键 {UP}
向下键 {DOWN}
向右键 {RIGHT}
向左键 {LEFT}