将日期条件添加到宏,以确定要复制的内容

时间:2019-05-14 10:18:47

标签: excel vba

我有一份销售佣金报告,为此我建立了一个小宏。宏工作正常。它从一张纸复制所需的信息,并张贴到“摘要”纸。

我的代码如下:

Sub Test()

Dim r As Long

r = WorksheetFunction.Max(Sheets("Summary").Range("D" & 
Rows.Count).End(xlUp).Row + 1, 3)

Sheets("Comm Payable").Range("C31:P31").Copy
Sheets("Summary").Range("D" & r).PasteSpecial Paste:=xlPasteValues

Sheets("Comm Payable").Range("C3:D3").Copy
Sheets("Summary").Range("B" & r).PasteSpecial Paste:=xlPasteValues

Sheets("Comm Payable").Range("N1").Copy
Sheets("Summary").Range("C" & r).PasteSpecial Paste:=xlPasteValues

Sheets("Comm Payable").Range("O1").ClearContents

End Sub

我需要帮助处理范围“ C32:P32”的代码部分:

Sheets("Comm Payable").Range("C31:P31").Copy
Sheets("Summary").Range("D" & r).PasteSpecial Paste:=xlPasteValues

我有12行“ A20:A31”。 A20是1月19日,A21是2月19日,依此类推。

此刻宏仅复制C31:P31,但是我需要做的是从C复制到P,但要基于N1中的日期。如果N1是“ April 2019”,则它必须在“ A”中找到“ Apr-19”的行并复制该C:P。

1 个答案:

答案 0 :(得分:-1)

尝试将其添加到您的代码中。它循环遍历A列中的N1中的日期,并在找到该行时复制该行。

Dim aDate As Date
Dim rng As Range
Set rng = Sheets("Comm Payable").Range("A20:A31")
aDate = Sheets("Comm Payable").Range("N1")
For Each cell In rng.Cells
    If cell.Value = aDate Then
        rownum = cell.Row
        Sheets("Comm Payable").Range("C" & rownum & ":P" & rownum).Copy
        Sheets("Summary").Range("D" & r).PasteSpecial Paste:=xlPasteValues
    End If
Next cell