[英]VBA - Copy and paste in last workday
我只想將某個范圍的一些值復制到特定行(Excel)。 值在 B2:F2 范圍內這些值應該復制到昨天的行中,但前提是今天是工作日。 如果今天是星期一,則應將值復制到星期五的行。
我在 A2:A3500 中有格式為“dd.mm.yyyy”的日期值。 這些值應復制到 Bx:Fx 中。
如何做到這一點?
我已經嘗試過了,但它不起作用......
Dim sv, sq, k As Long, zl
With Sheets("tblGeneral")
sv = .Cells(6, 1).CurrentRegion.Resize(, 6)
sq = .Cells(2, 2).Resize(, 5)
zl = Application.Match(CLng(Date), .Columns(1), 0)
If Not IsError(zl) Then
For k = 2 To 6
sv(zl - 7, k) = sq(1, k - 1)
Next k
.Cells(6, 1).CurrentRegion.Resize(, 6) = sv
End If
End With
我認為這樣的事情對你有用:
Sub tgr()
Dim ws As Worksheet
Dim rTarget As Range
Dim rCopy As Range
Dim dtCompare As Date
Dim dtTarget As Date
Dim sDateFormat As String
Set ws = ActiveWorkbook.Worksheets("tblGeneral")
Set rCopy = ws.Range("B2:F2")
dtCompare = Date
sDateFormat = ws.Range("A2").NumberFormat
Select Case Format(dtCompare, "ddd")
Case "Mon": dtTarget = dtCompare - 3
Case "Sun": dtTarget = dtCompare - 2
Case Else: dtTarget = dtCompare - 1
End Select
Set rTarget = ws.Columns("A").Find(Format(dtTarget, sDateFormat), , xlValues, xlWhole)
If Not rTarget Is Nothing Then
rTarget.Offset(, 1).Resize(rCopy.Rows.Count, rCopy.Columns.Count).Value = rCopy.Value
Else
MsgBox "Target date [" & Format(dtTarget, sDateFormat) & "] not found.", , "Error"
End If
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.