Я только начал использовать VBa и продолжаю получать сообщение об ожидаемо: конец оператора.Я не уверен, в чем проблема.Мне нужно VBA, чтобы зациклить оператор if с vlookup и iferror.Я не могу установить диапазон, потому что список будет динамическим.Чем больше я пытаюсь исправить код, тем более грязным он становится.Я искал в Интернете помощь.
Любая помощь будет полезна.
Формула работает на вкладке MasterData и извлекается из вкладки DataDrop.
Sub COAB()
Dim i As Range
Set i = Sheets("MasterData").Range("D2")
Dim i2 As Range
Dim i3 As Range
Set i2 = Sheets("MasterData").Range("W2")
Set i3 = Sheets("MasterData").Range("X2")
Dim MasterData As Worksheet
Dim DataDrop As Worksheet
Set MasterData = ThisWorkbook.Sheets("MasterData")
Set DataDrop = ThisWorkbook.Sheets("DataDrop")
Do Until IsEmpty(i)
i2 = "=IFERROR(IF(VLOOKUP(" & MasterData.Range("D2").Address(0, 0) & ","
& DataDrop.Range("A:C") & ",3,FALSE)" <> "NULL" & ", & ""Charged Off"" & ","
& "Active "),"& Active")"
i3 = "=IFERROR(VLOOKUP(RC[-20],'DataDrop'!A:C,2,FALSE),0)"
Set i = i.Offset(1)
Set i2 = i2.Offset(1, 0)
Set i3 = i3.Offset(1, 0)
Loop
End Sub
Формула в одном столбце должна иметь вид = IFERROR (IF (VLOOKUP (D2, DataDrop! A: C, 3, FALSE) <> «NULL», «Charged Off», «Active»), «Active»)
А другой столбец должен быть = IFERROR (VLOOKUP (D2, DataDrop! A: C, 2, FALSE), 0)