Я написал VBA-код, который копирует данные из Sheet1
в Sheet2
с помощью функции Match
на основе значения столбца.
Match
функция выдает ошибку, так как некоторые значения отсутствуют в столбце Sheet2
, поэтому для этого я пытаюсь использовать следующий код:
On Error Resume Next
Код скопировал данные из Sheet1
в Sheet2
но когда код не находит Match
, он вставляет то же значение последнего столбца в следующий столбец.
Поэтому я попытался использовать следующий код для обработки #NA
ошибки:
cont = Application.WorksheetFunction.IsNA(Excel.WorksheetFunction.Match(Sheet2.Cells(1, i), Sheet1.Range("A3:Ah3"), 0))
Но сам код начал выдавать ошибку, и когда я пытаюсь использовать оба кода вместе, значение переменных cont всегда ложно.
Полный код проблемыВот как это выглядит:
Sub Copy()
Dim lastColumnSheet2 As Long
Dim i As Long
Dim temp As Long
Dim cont As Boolean
lastColumnSheet2 = Sheet2.Cells(1, Columns.Count).End(xlToLeft).Column
On Error Resume Next
For i = 2 To lastColumnSheet2
'cont = Application.WorksheetFunction.IsNA(Excel.WorksheetFunction.Match(Sheet2.Cells(1, i), Sheet1.Range("A3:Ah3"), 0))
'If cont = False Then
temp = Excel.WorksheetFunction.Match(Sheet2.Cells(1, i), Sheet1.Range("A1:Ah1"), 0)
If Sheet2.Cells(2, i).Value = "" Then
Sheet2.Cells(2, i).Value = Sheet1.Cells(2, temp).Value
End If
'Else
'End If
Next i
Может кто-нибудь подсказать мне, как обработать ошибку #NA
в VBA?
Это ссылка на пример данных с кодом: https://drive.google.com/file/d/1-luUAqleKgxcg4pWl_Mn4ecI9HrjnJAq/view?usp=sharing