我试图在sheet2中的每个时候将我的选择sheet1粘贴到sheet2新行的B列中时,将今天的日期添加到sheet2中的A列.
我的脚本可以添加新行并将我的选择粘贴到sheet2中,但是我无法弄清楚如何在第一列中获取新的sheet2行.这是我宏中的脚本;
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
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.谢谢
试试这个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
Run Code Online (Sandbox Code Playgroud)
有比使用While循环更好的方法来获取 B 列中的最后一行,这里有很多例子。有些比其他更好,但取决于您正在做什么以及您的工作表结构是什么样的。我在这里使用了一个假设 B 列除了您要移动的行/记录之外都是空的。如果情况并非如此,或者B1:B3其中包含某些值,则您需要修改或使用其他方法。或者你可以只使用你的循环,但我会寻找替代方案:)
| 归档时间: |
|
| 查看次数: |
130403 次 |
| 最近记录: |