Excel 运行时错误13后恢复循环-类型不匹配

Excel 运行时错误13后恢复循环-类型不匹配,excel,vba,Excel,Vba,希望这是一个容易解决的问题。在MonthRangeK&i不包含值之前,我的代码一直按预期工作,在这种情况下,我会得到一个运行时错误13-类型不匹配。发生这种情况时,我希望循环继续运行,以获得下一个I值。我尝试使用On Error Resume,但它正在恢复下一个k值,而不是I,从而导致错误数据。这里的任何帮助都是感激的 For i = 3 To 6 For k = 16 To 36 If Month(Range("K" & i)) = Month(Cells

希望这是一个容易解决的问题。在MonthRangeK&i不包含值之前,我的代码一直按预期工作,在这种情况下,我会得到一个运行时错误13-类型不匹配。发生这种情况时,我希望循环继续运行,以获得下一个I值。我尝试使用On Error Resume,但它正在恢复下一个k值,而不是I,从而导致错误数据。这里的任何帮助都是感激的

For i = 3 To 6

    For k = 16 To 36


        If Month(Range("K" & i)) = Month(Cells(2, k)) And Year(Range("K" & i)) = Year(Cells(2, k)) And Range("J" & i).Value > "0" Then

           Range("J" & i).Copy
           Cells(i, k).PasteSpecial xlPasteValues

        End If
    Next k

Next i

添加另一个If以测试它是否是第一个日期

还有几个注意事项:

养成将所有父对象指定为范围对象的习惯,即使在活动工作表上也是如此。它将有助于将来处理更复杂的代码

当只需要值时,可以更快地避开剪贴板并直接指定值

For i = 3 To 6

    For k = 16 To 36
        With ActiveSheet
            If IsDate(.Range("K" & i)) Then
                If Month(.Range("K" & i)) = Month(.Cells(2, k)) And Year(.Range("K" & i)) = Year(.Cells(2, k)) And .Range("J" & i).Value > "0" Then

                   .Range("J" & i).Value = .Cells(i, k).Value

                End If
            End If
        End With
    Next k

Next i

如您所示,当我尝试添加额外的IF时,它给了我一个编译错误:Next不带For,并突出显示了位于k?@MattR之前的Next现在再试一次-Scott用