0

我想知道是否有人可以帮助我。

首先,我是第一个承认,我已经获得了进入这个阶段的帮助,但我有点不确定能否解决我在下面的代码中遇到的问题。

提供一点背景:

我正在尝试做的是检查代码在哪里查看工作表“AllData”(源)工作表上的项目列表,从单元格 E3 开始,如果单元格包含文本值“增强”,则复制该单元格并将其粘贴到“增强”(目标)表中。

此外,代码还将与每个项目关联的“实际”工时数字和日期以及按项目和按期间的总工时输入目标表(增强表)上的相应单元格。这些是“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

0

当值为“增强”时,您没有做任何不同的事情。改变这个:

    If InStr(.Offset(i, 0), "Enhancements") > 0 Then
        strProject = .Offset(i, 0)
    End If

对此:

    If InStr(strProject, "Enhancements") = 0 Then
        GoTo NextLoop
    End If

并在“Next i”之前添加 NextLoop 标识符:

        End With
NextLoop:
    Next i
End With
End Sub
于 2013-08-07T16:00:00.417 回答