如何在VBA中将'Last Refreshed'与NOW()的当前日期时间拼接
修改VBA宏:将刷新文本与日期时间拼接写入单元格
以下是修改后的完整宏代码,实现将「Last Refreshed」文本与格式化后的当前日期时间拼接为单个字符串,写入指定单元格(示例中为A2,可根据需求调整为其他单元格):
Public Sub ChartOfAccountsOnly() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim Lastrow As Long Columns("N:N").ClearContents Range("A1").Copy Range("B1").PasteSpecial Paste:=xlPasteValues Range("A4", Range("A4").End(xlDown)).Copy Range("N4").PasteSpecial Paste:=xlPasteValues ThisWorkbook.Connections("Query - GAL Chart Of Accounts").Refresh Range("O4").AutoFill Destination:=Range("O4:O" & Cells(Rows.Count, "A").End(xlUp).Row) Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True ' 修改部分:拼接文本与格式化后的日期时间,写入指定单元格 With Sheets("Chart Of Accounts").Range("A2") .Value = "Last Refreshed: " & Format(Now(), "dd/mm/yyyy hh:mm:ss") ' 若需要调整单元格样式,可添加字体/对齐等设置 '.Font.Bold = True End With End Sub
关键修改说明
- 移除原分开写入逻辑:删除了原代码中单独设置A2静态文本和B2日期时间的代码
- 格式化日期时间为字符串:使用
Format(Now(), "dd/mm/yyyy hh:mm:ss")将系统当前时间转换为指定格式的文本字符串 - 拼接并写入:将「Last Refreshed: 」与格式化后的时间拼接,直接赋值给目标单元格(示例为
A2,若需写入B2或其他单元格,修改Range("A2")为对应单元格即可) - 优化原代码冗余操作:移除了不必要的
Select操作,直接对单元格对象执行操作,提升宏的运行效率
内容的提问来源于stack exchange,提问作者Gary
相关产品推荐
相关产品推荐

