如何在Excel工作表中获取今天的日期?

gkl3eglg  于 2023-05-30  发布在  其他
关注(0)|答案(2)|浏览(259)

我正在尝试将今天的日期添加到sheet2中的A列。每次宏将sheet1中B列的选择粘贴到sheet2中的新行。
我的脚本可以添加新行并将我的选择粘贴到sheet2中,但是我不知道如何在sheet2中为新行获取A列中的日期。下面是我的宏中的脚本;

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
agxfikkp

agxfikkp1#

试试Date函数。它将以MM/DD/YYYY格式给予今天的日期。如果您正在寻找今天的日期格式为MM-DD-YYYY尝试Date$Now()还包括当前时间(您可能不需要)。这一切都取决于你需要什么。:)

7nbnzgx9

7nbnzgx92#

下面是一个将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

有比使用While循环更好的方法来获取B列中的最后一行,这里有很多例子。有些比其他的好,但取决于你在做什么,你的工作表结构看起来像什么。我在这里使用了一个,它假设B列除了你要移动的行/记录之外都是空的。如果不是这样,或者B1:B3中有一些值,则需要修改或使用其他方法。或者你可以使用你的循环,但我会寻找替代方案:)

相关问题