将数据行从一个表单复制到另一个表单,其中目的地表单由date命名

我将信息存储在Excel 2010工作簿的一页中,其中一列包含date。 我想要一个按date分组这些信息的macros,并将其复制到同一个工作簿中的其他工作表中,这些工作簿是我之前设置的,并由这些date命名的。

所以我在一个名为“Source”的表单上有这个信息:

Date First Name Last Name Hair Colour 01/02/2011 Bob Jones Brown 02/05/2011 Geoff Smith Red 03/09/2010 Craig Hamilton Blond 02/05/2011 Chris Wazowski Brown 05/06/2011 Steve Mac Blond 03/09/2010 Tom Lounds Brown 

我还有另外4张纸,分别是“2011年2月1日”,“2011年5月2日”,“2010年9月3日”和“2011年6月5日”

我想要一个macros将复制的标题和整个行从“来源”表具有这些date到相应的工作表。

数据不断被添加到“来源”表,所以这是一个行动,我需要经常重复。

我知道在这个网站上有很多代码显示了如何按照条件将信息分组和复制到其他表单中,但是我还没有find这样的代码。

以下是如何在Date (第一列中的数据)和具有与表格名称相同格式的String之间来回转换的示例。

 Dim d As Date Dim sheetName As String d = CDate("01/02/2011") ' or eg Range("A2").Value sheetName = Format(d, "dd mmm yyyy") Debug.Print sheetName ' 01 Feb 2011 

至于其他方面,正如你指出的那样,本网站已经回答了一个类似的问题,并提供了几乎与你相同的问题的解决scheme。 一旦你尝试了一些东西,让我们知道,如果你有任何具体的问题。

谢谢Jean-Francois。

我find了一个很好的解决scheme,虽然我不完全确定如何或为什么:

 Sub Update_Sheets() 'Formats dates Dim rng As Range Dim rngA As Range Set rngA = Range("A1:A" & Range("A" & Range("A:A").Rows.Count).End(xlUp).Row) rngA.NumberFormat = "@" For Each rng In rngA rng.Value = Format(rng, "dd mmm yyyy") Next rng 'Copies rows of data to the right sheets Dim ws As Worksheet, source As Range, dest As Range Dim daily As Worksheet Set daily = Worksheets("Source") Application.ScreenUpdating = False On Error Resume Next For Each ws In Worksheets If ws.Name <> daily.Name Then daily.Range("A1").AutoFilter Field:=1, Criteria1:=ws.Name Set source = daily.Range("A1").CurrentRegion.Offset(1, 0).SpecialCells(xlVisible) Set dest = Worksheets(ws.Name).Range("A65536").End(xlUp).Offset(1, 0) source.Copy dest End If Next daily.Range("A1").AutoFilter On Error GoTo 0 End Sub