[英]Copy/Paste Date using VBA
我正在嘗試在 Excel 中使用 Today Function 插入日期。 我在單元格 I2 中有一張日期在頂部的表格。
我有一個表,正在使用 VBA 將粘貼值復制到其中 - 這將每天使用,我希望將日期自動填充到 D 列,從 D 列中最后使用的行開始,以最后使用的行結束列 C。 然后我希望將日期保存為值。
我嘗試使用以下代碼,但它沒有用 - 什么也沒發生。
有人可以幫我理解為什么,以及如何糾正這個問題嗎?
With ThisWorkbook
With .Sheets("Test")
Dim rng As Range
Set rng = .Range(.Cells(.Rows.Count, "D").End(xlUp), .Cells(.Rows.Count, "C").End(xlUp).Offset(0, 1))
rng.Value = ThisWorkbook.Sheets("Test").Range("I2").Value
End With
End With
我相信這就是你想要的:
Column C
查找最后使用的行(假設 C 和 D 中的最后一行是相等的,所以只需在一列中計算。看起來你試圖過於復雜)rng
分配並在計算lr
時使用Offset
和在引用目標行時使用Resize
組合應用值傳輸Sub Try_Me()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Test")
Dim lr As Long
lr = ws.Range("C" & ws.Rows.Count).End(xlUp).Offset(1).Row
ws.Range("C" & lr).Resize(1, 2).Value = ws.Range("I2").Value
End Sub
查看您當前的Set rng =...
語句,您可能正在嘗試確定任一列中最后使用的行,這表明兩者中最后使用的行可能會有所不同。 如果是這種情況,您可以比較兩者並選擇最大值,如下所示:
Sub Try_Me()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet2")
Dim c As Long, d As Long, lr As Long
c = ws.Range("C" & ws.Rows.Count).End(xlUp).Offset(1).Row
d = ws.Range("C" & ws.Rows.Count).End(xlUp).Offset(1).Row
lr = Application.WorksheetFunction.Max(c, d)
ws.Range("C" & lr).Resize(1, 2).Value = ws.Range("I2").Value
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.