2

我有一个时间表供我的工人使用,他们使用具有以下顺序的工作表记录他们的时间

   Categories   Washing Cleaning   Office   Duties   Baking Cooking

Date          Hours  Hours     Hours    Hours     Hours Hours
Jan/1/13              3.00              6.00
Jan/2/13                        
Jan/6/13                        3.00    
Jan/10/13                       

基本上我想要的是有一个代码,它根据相关类别将日期和小时数复制到另一个名为 Report 的工作表中。我需要三列作为输出日期时间类别。

4

2 回答 2

1

试试下面的代码:

Sub sample()


    Dim lastRow As Long
    Dim col As Long
    Dim a As String, b As String, c As String

    With Sheets("sheet1")
        lastRow = .Range("A" & Rows.Count).End(xlUp).Row

        If lastRow < 4 Then lastRow = 4

        For i = 4 To lastRow
            For col = 2 To 7
                If .Cells(i, col) <> "" Then

                    a = .Cells(i, 1)
                    b = .Cells(i, col)
                    c = .Cells(1, col)

                    With Sheets("Report")
                        .Range("A" & .Range("A" & .Rows.Count).End(xlUp).Row + 1).Value = a
                        .Range("B" & .Range("B" & .Rows.Count).End(xlUp).Row + 1).Value = b
                        .Range("C" & .Range("C" & .Rows.Count).End(xlUp).Row + 1).Value = c
                    End With
                End If
            Next
        Next

    End With
End Sub

在此处输入图像描述

于 2013-06-03T00:56:31.557 回答
0

您是否尝试过类似的方法:

Sheet2.Range("A1").Value = Sheet1.Range("A1").Value

或者

Sheet2.Range("A1").Text = Sheet1.Range("A1").Text

也许您可以创建一个循环并执行以下操作:

Sheet2.Range("A" & i).Value = Sheet1.Range("A" & i).Value

有很多选项可以做到这一点......甚至 Range.Copy (参见:http: //msdn.microsoft.com/en-us/library/office/ff837760.aspx

祝你好运。

于 2013-06-02T19:12:34.490 回答