VBA-копировать строки - если обнаружена ошибка, то продолжить в ячейках копирования
У меня есть макрос, который копирует ячейки в ячейки ниже.
Sub CopyRows2()
Dim LastRow As Long
With Worksheets("Ready to upload") ' <-- here should be the Sheet's name
LastRow = .Cells(.Rows.Count, "AD").End(xlUp).Row ' last row in column C
For i = 2 To LastRow
If Range("AD" & i) > "" And Range("AD" & i + 1) = "" Then
Range("AD" & i).Copy
Range("AD" & i + 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Else
End If
Next
End With
ActiveWindow.ScrollRow = 1 'scrolling the screen to the top
End Sub
Он работает нормально, пока не будет найден #N/A
, тогда он даст мне ошибку msg: Ошибка времени выполнения '13'-Тип несоответствия. В этом случае я хотел бы пропустить его, а затем продолжить в строках копирования.
[
Не могли бы вы мне посоветовать, как это сделать, пожалуйста?Большое спасибо!
1 ответ:
Вариант 1
Самый простой способ-это встроить
On Error Resume Next
в ваш код. Тогда это сработает.
Вариант 2 Если вы хотите быть на один шаг более профессиональным, то вы можете использовать что-то вроде этого:
Sub CopyRows2() Dim LastRow As Long On Error Resume Next 'your code If Err.Number = 13 Then Err.Clear On Error GoTo 0 End Sub
Он проигнорирует ошибку
13
, но сообщит вам, есть ли другие ошибки, что весьма полезно.
Вариант 3 Проверьте наличие ошибки следующим образом:
If Not IsError(Range("AD" & i)) And Not IsError(Range("AD" & i + 1)) Then 'embed the code here End If