如何使用VBA触发某个功能键比如F9
可以使用SendKeys方法来按下F9按键。使用方法如下:
Private Sub Worksheet_Change(ByVal Target As Range)
SendKeys "{F9}"
End Sub
SendKeys 方法
参阅参阅参阅参阅
将击键发送给活动应用程序。
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),请使用下表所列的代码来表示相应的键。表中的每个代码表示键盘上的一个键。
键 代码
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}
也可指定与 Shift 和/或 Ctrl 和/或 Alt 组合使用的键。要指定与其他键组合使用的键,请使用下表。
要组合的键
在键代码之前添加
Shift +(加号)
Ctrl ^(乘幂)
Alt %(百分号)
示例
本示例使用 SendKeys 方法退出 Microsoft Excel。
Application.SendKeys("%fx")
为什么这段代码不能触发F9调用外部程序呢?
那你直接在下面加入一行语句
CALL QA
即可啊!
下面代码能满足你的要求,以附件为证。有问题请联系
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B1]) Is Nothing Then '如果修改的单元格是B1的内容
MsgBox "点击确定后程序将帮你按下F9键"
SendKeys "{F9}" '按下F9
Call QA '运行宏QA
End If
End Sub
'以下是当B1发生改变时,自动运行以下程序,将下面的代码复制到,所在的工作表。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
call QA
end if
End Sub
'QA过程最好连着放到下面,如果不放到下面,call QA改成QA所在的位置.
'比如QA在模块1: call 模块1.QA
sub QA
'你的程序代码
end sub
假如改变的不只是B1,而是介于B1到D12的范围内的任意一个或多个单元格改变,请问代码应该如何写呢?另外好像调用QA,不需要用call,直接QA就行,是不是?
不好意思,我需要的是一段完整的VBA代码,不是公式或者设定,而是希望其能自动触发,还是谢谢你的建议