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                       

基本的に私が欲しいのは、レポートと呼ばれる別のシートに関連するカテゴリに応じて時間数とともに日付をコピーするコードを持つことです。出力の Date Hours Category として 3 つの列が必要です。

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 に答える