0

誰かが私を助けてくれるのではないかと思います。

まず、私が最初に認めたのは、この段階に到達するための支援を受けましたが、以下のコードで発生した問題を乗り越えられるかどうか少し確信が持てないことです。

少し背景を説明するには:

私がやろうとしているのは、コードがセル E3 から始まるシート「AllData」(ソース) シートのプロジェクトのリストを見て、テキスト値「Enhancements」が含まれている場合はセルをコピーする場所をチェックすることです。これを「Enhancements」(Destination)シートに貼り付けます。

さらに、このコードは、各プロジェクトに関連付けられた「実績」の工数と日付も取得し、プロジェクト別および期間別の総工数を宛先シート (拡張シート) のそれぞれのセルに入力します。これらは「RVal」および「RDate」変数です。

改訂されたコード - 完全に機能するスクリプト

    Sub Extract()
    Dim i As Long, j As Long, m As Long
    Dim strProject As String
    Dim RDate As Date
    Dim RVal As Single
    Dim BlnProjExists As Boolean
    With Sheets("Enhancements").Range("B3")
    For i = 1 To .CurrentRegion.Rows.Count - 1
        For j = 0 To 13
            .Offset(i, j) = ""
        Next j
    Next i
End With
With Sheets("AllData").Range("E3")
    For i = 1 To .CurrentRegion.Rows.Count - 1
    strProject = .Offset(i, 0)
    If InStr(strProject, "Enhancements") = 0 Then
        GoTo NextLoop
    End If
        RDate = .Offset(i, 3)
        RVal = .Offset(i, 4)
        With Sheets("Enhancements").Range("B3")
            If .CurrentRegion.Rows.Count = 1 Then
                .Offset(1, 0) = strProject
                j = 1
            Else
                BlnProjExists = False
                For j = 1 To .CurrentRegion.Rows.Count - 1
                    If .Offset(j, 0) = strProject Then
                        BlnProjExists = True
                        Exit For
                    End If
                Next j
                If BlnProjExists = False Then
 .Offset(j, 0) = strProject
                End If
            End If
            Select Case Format(RDate, "mmm yy")
                Case "Apr 13"
                    m = 1
                Case "May 13"
                    m = 2
                Case "Jun 13"
                    m = 3
                Case "Jul 13"
                    m = 4
                Case "Aug 13"
                    m = 5
                Case "Sep 13"
                    m = 6
                Case "Oct 13"
                    m = 7
                Case "Nov 13"
                    m = 8
                Case "Dec 13"
                    m = 9
                Case "Jan 14"
                    m = 10
                Case "Feb 14"
                    m = 11
                Case "Mar 14"
                    m = 12
            End Select
            .Offset(j, m) = .Offset(j, m) + RVal
        End With
NextLoop:
    Next i
End With
End Sub

残念ながら、これを実行しようとすると、「コンパイル エラー: ラベルが定義されていません」というエラーが表示され、デバッグによって次の行が問題として強調表示されますが、その理由はわかりません。

GoTo Nexti

誰かがこれを見て、どこが間違っているのか教えてくれるかどうか疑問に思いましたか?

お役に立てれば、テスト ファイルへのリンクを提供できます。

多くの感謝と親切な敬意

4

1 に答える 1