簡體   English   中英

excel宏中的今天日期

[英]Today`s date in an excel macro

我正在嘗試將今天的日期添加到 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

試試Date函數。 它將以 MM/DD/YYYY 格式為您提供今天的日期。 如果您正在尋找 MM-DD-YYYY 格式的今天日期,請嘗試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

有比使用While循環更好的方法來獲取 B 列的最后一行,這里有很多例子。 有些比其他更好,但取決於您在做什么以及您的工作表結構是什么樣的。 我在這里使用了一個,它假設 B 列除了您要移動的行/記錄外都是空的。 如果不是這種情況,或者B1:B3有一些值,則需要修改或使用其他方法。 或者你可以只使用你的循環,但我會尋找替代品:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM