将单元格中的单元格复制到另一个电子表格中

时间:2014-04-29 19:22:49

标签: excel

我有一个电子表格,其中包含不同日期的多个人的数据。我想将非零单元格复制到每个人的单独表格中。例如,汤姆在4月12日工作3小时,4月13日工作6小时,4月16日工作5小时。迪克4月12日工作6小时,4月15日工作3小时,4月16日工作5小时。哈利4/14工作5小时,4月15日工作4小时,4月16日工作6小时。 A列的日期为4/12到4/16,而C,D和E列的日期是Tom,Dick和Harry在那些日子工作的时间。他们没有工作的日子是空白的。我为每个人都有一个单独的工作表,它应该只显示他们工作的日子,因此Tom的工作表只有4/12,4/13和4/16的日期。我可以使用宏或查找从主表单复制到单个表格吗?感谢。

1 个答案:

答案 0 :(得分:0)

假设您的数据看起来像这样(并且位于名为“Master”的工作表中):

enter image description here

尝试使用此代码:

Sub tgr()

    Dim wb As Workbook
    Dim wsMstr As Worksheet
    Dim rngHours As Range
    Dim cIndex As Long

    Set wb = ActiveWorkbook
    Set wsMstr = wb.Sheets("Master")
    Set rngHours = wsMstr.UsedRange

    Application.ScreenUpdating = False
    For cIndex = Columns("C").Column To rngHours.Columns.Count
        With wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count))
            .Name = wsMstr.Cells(rngHours.Row, cIndex).Text
            rngHours.AutoFilter cIndex, ">0"
            Intersect(rngHours, wsMstr.Range("A:A," & Columns(cIndex).Address)).Copy .Range("A1")
            rngHours.AutoFilter
            .Columns("A").EntireColumn.AutoFit
        End With
    Next cIndex
    Application.ScreenUpdating = True

End Sub