将数据粘贴到不同工作表中的正确日期列中

时间:2012-08-22 14:51:54

标签: excel-vba vba excel

我有一个每日更新的工作簿,该工作簿的副本将保存为该日期。我要做的是为一年中的每个日期都有一个包含列的工作表,并将数据保存到正确的日期列中,以便获得每日记录和运行总计。

我使用了IF功能,除非您更改日期时未保存上一列日期,否则它的效果很好。我想我需要一个宏,但不知道从哪里开始。

提前感谢您的帮助!

这是我的代码:

Sub KPI()

Dim lct As Long 
lct = Application.WorksheetsFunction.Match(Worksheets("KPI").Range("A1"), Worksheets("KPI").Range("H2:BP2"), 0) 

Worksheets("Shift Summary").Activate 
Range("F15").Select 

If Range("A4") = "I2" Then 

    Worksheets("KPI").Activate Cells(lct, 3).Select 
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
        :=False, Transpose:=False 

End If 

If Range("A4") = "J2" Then 

    Worksheets("KPI").Activate Cells(lct, 21).Select Selection.PasteSpecial         Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 
End If 

End Sub

1 个答案:

答案 0 :(得分:0)

好的,这段代码应该让你入门。

我已将两个范围命名为Shift Summary工作表

Date = Range("B1") Safety = Range("F13:F22")

下面的代码应该为您提供一个很好的开始,以获得您可能需要的所有其他元素。在错误检查等方面可能还有更多要补充的内容,但就目前而言,这应该可以帮助您顺利完成。

Sub UpdateSummary()

Dim wksShift As Worksheet, wksSummary As Worksheet
Dim myDate As Date

Set wksShift = Sheets("Shift Summary")
myDate = wksShift.Range("Date")

Set wksSummary = Sheets("KPI")

With wksSummary

    Dim myRange As Range
    Set myRange = .Rows("2:2").Find(myDate, LookAt:=xlWhole, LookIn:=xlFormulas)

    If Not myRange Is Nothing Then 

        wksShift.Range("Safety").Copy

        myRange.Offset(1).PasteSpecial xlPasteValues

    End If

End With

End Sub