如何在单元格更改但尚未input数据时运行Excelmacros?

问题在于:我有一台激光扫描仪读取条形码,并在读取成功后返回一个值。 发生这种情况时,序列号(一个20位数字)被粘贴到活动单元格中。 粘贴 ,但没有input 。 我想知道是否有任何方法可以在private sub中包含某种“如果粘贴数据”的语句。

代码的第二个目的是为每个条目添加时间戳,如下所示:

Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then ActiveCell.Offset(0, 1).Activate ActiveCell.Value = Now() ActiveCell.Offset(1, -1).Activate End If End Sub 

数据不会被快速input,所以相对单元格引用不应该是一个问题。
如果你看到其他可以改进的地方,请不要犹豫,提及它!

编辑:因为有些人提出了,这不是一个“简单”的粘贴; 数据被放置在公式栏中,但不会被input。

编辑2:这是另一个人有我的同样的问题。

条形码阅读器只是从条形码中读取字母数字的键盘的替代品。 问题是它没有input回车键。 你可能想检查是否有一种方法来激活条码阅读器的这种能力。 示例: https : //docs.symbol.com/KanisaPlatform/Publishing/444/ADC-01244_f.SAL_Public.html

Excel中不存在由VBA提供的事件来拾取击键并最终在配方栏中进行更改。

根据这个来源: http : //www.excelforum.com/excel-programming-vba-macros/686972-key-press-event-in-he-formula-bar.html ,你不能捕获字符input的按键事件在公式栏中。 相同的来源描述了一种可能的方式来做到这一点,涉及到通过Win32 API聆听事件进入配方栏窗口的方式。 没有什么令人兴奋的。