我正在尝试简化在电子表格中记录记录的过程。我想在单元格中插入时间戳(具有特定格式),然后继续输入注释。
这是我在 VBA 中的代码:
Sub timestamp()
Dim stringdate As String
Dim stringtime As String
Dim stamp As String
stringdate = Format(Now(), "mm/dd/yy")
stringtime = Format(Now(), "hh:mmA/P")
stamp = stringdate & " @" & stringtime & " KB- "
Selection.Value = stamp
'SendKeys "{F2}" /// not working
End Sub
这会以我想要的格式插入时间戳,但我有两个问题。 (1) 我需要能够在插入文本后继续输入,但发送键不起作用。 (2) 我还希望能够稍后导航回该单元格,并在下面插入带有更多注释的新时间戳。
感谢您的帮助!
最佳答案
如果我理解您的问题,您想在编辑单元格时运行宏。那是不可能的。所以我想提供一个解决方法。 将其放入您的工作表模块中:
Const MAGIC_CHARACTER = "¤"
Private Sub Worksheet_Change(ByVal Target As Range)
Dim stringdate As String
Dim stringtime As String
Dim stamp As String
Application.EnableEvents = False
stringdate = Format(Now(), "mm/dd/yy")
stringtime = Format(Now(), "hh:mmA/P")
stamp = stringdate & " @" & stringtime & " KB- "
Target.Value = Replace(Target.Value, MAGIC_CHARACTER, stamp)
Application.EnableEvents = True
End Sub
当您需要时间戳时,请输入魔术字符,它一定是您永远不会使用的东西,但您仍然可以在键盘上轻松访问。就我而言,我选择了“¤”,但您可能使用不同的键盘布局,因此请选择适合您的键盘布局。一旦您离开单元格,魔术字符就会被时间戳替换。
关于string - 使用 VBA 将可变文本字符串(时间戳)插入单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50395839/