2017-08-21 59 views
0

希望這是一個容易解決的問題。我的代碼按預期工作,直到月份(範圍(「K」& i))不包含值,在這種情況下,我得到運行時錯誤13 - 類型不匹配。當發生這種情況時,我希望循環繼續爲下一個i值運行。我嘗試使用錯誤恢復,但它正在恢復下一個K值,而不是我導致錯誤的數據。這裏的任何幫助表示讚賞。運行時間後恢復循環錯誤13 - 類型不匹配

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 

回答

1

添加另一個如果先測試它是否是一個日期。

一對夫婦更注意事項:

獲取指定所有家長即使在活動工作表的對象範圍,習慣。這將有助於未來更復雜的代碼。

當只需要值時,避免剪貼板並直接分配值更快。

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 
+0

當我嘗試添加額外的中頻,如你所示,它給我一個編譯錯誤:下一個沒有爲和突出顯示位於k之前的「下一步」? –

+0

@MattR現在再試一次 - 斯科特已經遺漏了'End With' – YowE3K

+0

@ YowE3K謝謝你回答了另一個問題。 –

相關問題