今天是一个excelmacros的date

我试图在sheet2的列A中添加今天的date,每次我的macros粘贴我在sheet2的新行的B列中selectsheet1。

我的脚本工作添加新行,并将我的select粘贴到工作表2中,但是我无法弄清楚如何在列A的新行中得到date。 这是我的macros中的脚本;

Sub move() Dim i As Integer Application.ScreenUpdating = False ActiveWorkbook.Sheets("Sheet1").Range("A1,A2,A3,A4,A5").Copy Sheets("Sheet2").Select i = 3 While Range("B" & i).Value <> "" i = i + 1 Wend Range("B" & i).Select Selection.PasteSpecial (xlValues), Transpose:=True Worksheets("Sheet1").Range("A1:A5").Clear End Sub 

任何帮助表示赞赏。 谢谢

尝试Datefunction。 它会以MM / DD / YYYY格式给你今天的date。 如果您正在以MM-DD-YYYY格式查找今天的date,请尝试Date$Now()还包括当前时间(您可能不需要)。 这一切都取决于你需要什么。 🙂

下面是一个例子,将Now()值放在A列中。

 Sub move() Dim i As Integer Dim sh1 As Worksheet Dim sh2 As Worksheet Dim nextRow As Long Dim copyRange As Range Dim destRange As Range Application.ScreenUpdating = False Set sh1 = ActiveWorkbook.Worksheets("Sheet1") Set sh2 = ActiveWorkbook.Worksheets("Sheet2") Set copyRange = sh1.Range("A1:A5") i = Application.WorksheetFunction.CountA(sh2.Range("B:B")) + 4 Set destRange = sh2.Range("B" & i) destRange.Resize(1, copyRange.Rows.Count).Value = Application.Transpose(copyRange.Value) destRange.Offset(0, -1).Value = Format(Now(), "MMM-DD-YYYY") copyRange.Clear Application.ScreenUpdating = True End Sub 

有更好的方法获得列B中的最后一行比使用While循环,在这里大量的例子。 有些比别人更好,但取决于你在做什么,你的工作表结构是什么样的。 我在这里使用了一个假设列B除了你正在移动的行/logging之外都是空的。 如果不是这种情况,或者如果B1:B3有一些值,则需要修改或使用另一种方法。 或者你可以使用你的循环,但我会寻找替代品:)