2011-08-10 271 views
1

我有我認爲的一個非常簡單的問題。Excel/VBA - 根據日期將數據複製並粘貼到特定行中的工作表中

我有一份每日更新的報告。來自一個工作表的特定範圍(B5:AC5)需要每天覆制到不同的工作表。這不需要自動完成,我只想將它的代碼添加到我創建的格式化宏中。

我有兩個問題與此:

  1. 我希望將數據以該特定日期所對應的行中進行粘貼。工作表「每日」中的列A具有該月份的工作日的列表。所以我需要的是讓宏在「Daily」中的A列中找到今天的日期,並將b5:AC5從「Matrix」粘貼到b?:ac?在「每日」的那一行。

  2. 我也需要它是一個特殊的粘貼,只有值被粘貼。

我對VB很陌生,但通常可以很好地遵循代碼邏輯。讓我知道你是否需要我的更多信息。非常感謝!

回答

1

假設你的範圍總是會在B5:AC5,這裏是我想出了:

Sub FindToday() 

    Dim FoundDate As Range 
    Set FoundDate = Worksheets("Daily").Columns("A").Find(DateValue(Now), LookIn:=xlValues, lookat:=xlWhole) 

    If Not FoundDate Is Nothing Then ' if we don't find the date, simply skip. 
     Worksheets("Matrix").Range("B5:AC5").Copy 
     FoundDate.Offset(0, 1).PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, False, False ' You can see that the first argument in PasteSpecial is set to only paste values. 

    End If 
End Sub 

我測試了這個最佳,我可以給你的信息。我在B5:AC5範圍內添加了一組升序數字,並附有公式,在日常工作表中放置了一組月份的升序日期,並且似乎按照您的要求進行操作。

希望這會有所幫助。

+1

哇,完美的工作。我真的很感激你幫助我! –

+0

沒問題。很高興它運作良好。 :) –

相關問題