string - 使用 VBA 将可变文本字符串(时间戳)插入单元格

标签 string vba excel text copy

我正在尝试简化在电子表格中记录记录的过程。我想在单元格中插入时间戳(具有特定格式),然后继续输入注释。

这是我在 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/

相关文章:

java - Java 中的字符串

java - 为什么不在 StringUtils、Spring-Core 中使用 len 而不是 str.length() ?

python - 'String' 模块对象没有属性 'join'

database - 通过单击另一个命令按钮在另一个工作表中单击命令按钮

vba - 强制"is"以保存并另存为无宏工作簿

Python:索引 float ?

vba - AppleScriptTask 抛出错误 5 - 无效的过程调用或参数

excel - 在 Office.js 中使用 Excel.run() 链接 Promise

vba - 按字母顺序对组合框值进行排序

c# - 我如何从excel中获取单元格地址