Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将单元格从一个电子表格中的区域复制到另一个电子表格_Excel - Fatal编程技术网

Excel 将单元格从一个电子表格中的区域复制到另一个电子表格

Excel 将单元格从一个电子表格中的区域复制到另一个电子表格,excel,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列的时间是汤姆、迪克和哈利在这些天工作的时间。他们没有工作的日子是空白的。我为每个人准备了一份单独的工作

我有一个电子表格,其中包含了几个人在不同日期的数据。我想为每个人将非零单元格复制到单独的表格中。例如,汤姆在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的工作表将只显示日期4/12、4/13和4/16。是否有宏或查找可用于从主工作表复制到个人工作表?谢谢。

假设您的数据如下所示(位于名为“主控”的工作表中):

请尝试以下代码:

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