gpt4 book ai didi

excel - 使用 Excel OnKey 而不覆盖默认按键行为

转载 作者:行者123 更新时间:2023-12-02 18:45:48 25 4
gpt4 key购买 nike

使用Application.OnKey <key>, <procedure> ,我可以使 Excel 运行 <procedure>每当<key>被按下。

我想让它做任何紧迫的事情<key>默认情况下会完成,然后运行 ​​<procedure> 。换句话说,我不想使用 OnKey要覆盖某个键的功能,我想用它来添加到某个键的功能。

背景信息:

我使用的条形码扫描仪在扫描某些内容时就像键盘一样,输入条形码的字符,然后按回车符(字符 13)。这个回车确实会触发Excel的OnKey "~"事件。

现在,我可以扫描条形码,并将条形码的值放入单元格中,然后向下移动到下一个单元格。这是一个好的开始。我想要做的是让 Excel 运行一些代码,以便将值放入单元格中,向下移动单元格,然后运行一个过程。

最佳答案

通常,您必须在自己的代码中模拟该操作。如果你想按 Enter 键,你可以使用这样的代码

Sub SEtup()

Application.OnKey "~", "DoThis"

End Sub

Sub DoThis()

'Simulate enter key
If Application.MoveAfterReturn Then
Select Case Application.MoveAfterReturnDirection
Case xlDown
If ActiveCell.Row < ActiveCell.Parent.Rows.Count Then
ActiveCell.Offset(1, 0).Select
End If
Case xlToLeft
If ActiveCell.Column > 1 Then
ActiveCell.Offset(0, -1).Select
End If
Case xlToRight
If ActiveCell.Column < ActiveCell.Parent.Columns.Count Then
ActiveCell.Offset(0, 1).Select
End If
Case xlUp
If ActiveCell.Row > 1 Then
ActiveCell.Offset(-1, 0).Select
End If
End Select
End If

'This is your code
Debug.Print ActiveCell.Address

End Sub

另一个选项是使用工作表事件。如果条形码输出是可预测的,您也许可以使用 Worksheet_SelectionChange 事件。例如,如果您的条形码始终输出四个数字、破折号和两个数字,您可以

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Offset(-1, 0).Value Like "####-##" Then
'do stuff here
Debug.Print Target.Address
End If

End Sub

假设您的 MoveAfterReturnDirection 是 xlDown,但您可以针对其他可能性进行编码。事实上,如果输出是可预测的,您可能只需使用 Worksheet_Change 事件来识别条形码输入并运行过程。

关于excel - 使用 Excel OnKey 而不覆盖默认按键行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9829332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com