Приложение: ошибка 1004 при установке формулы vlookup в ячейку, где мне нужно получить значение - PullRequest
0 голосов
/ 09 января 2020

Я получаю 1004 ошибку при .Cells(i, 202).Value = f

Значение f в момент ошибки:

=IF(ISNA(VLOOKUP($BA$2, [Input2.xlsx]Sheet2!$A$2:$E$35, 3,),VLOOKUP( $BD$2, [Input2.xlsx]Sheet2!$B$2:$E$35, 2,),VLOOKUP( $BA$2, [Input2.xlsx]Sheet2!$A$2:$E$35, 3,)))

Мое требование:

Есть 3 столбца с значения # n / a, и я хотел заполнить значение, используя vlookup для всех 3 столбцов. Я попытался использовать условие if для проверки столбца # n / a и заполнить только эти столбцы, но это также не работает.

Может ли кто-нибудь помочь мне выяснить, как написать условие if для моих столбцов ( GT, GU, GV), чтобы проверить, есть ли # n / a, и записать в мою ячейку (мой номер столбца - 202). Я пытаюсь написать код для vlookup, как показано ниже:

Sub Macro()
 Dim i As Long
 Dim x As Range
 Dim x1 As Range
 Dim b As Range
 Dim wb1 As Workbook
 Dim ws1 As Worksheet
 Dim y As Range
 Dim wb2 As Workbook
 Dim LastRow As Long
 Dim y2 As Long
 Dim lookupAdr As String, lookupAdr1 As String, f As String
 Dim Test As Variant

 Set wb1 = Workbooks.Open("C:\Users\padmini.chandrasheka\Desktop\SalesPipeline_Mapping\Input2.xlsx")
 LastRow = Cells(Rows.Count, 1).End(xlUp).Row
 Set x = wb1.Worksheets("Sheet2").Range("A2:E" & LastRow)
 Set x1 = wb1.Worksheets("Sheet2").Range("B2:E" & LastRow)

Set wb2=Workbooks.Open("C:\Users\padmini.chandrasheka\Desktop\19_Dec_2019.xlsx")
Set y = wb2.Worksheets("Open").Range("A2:GT" & LastRow)
Set ws1 = wb2.Worksheets("Open")
'Test = wb2.Worksheets("Open").Range("GT2:GT" & LastRow).Value
With ws1

'If IsNull(Test) = True Then
 For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
 lookupAdr = "[" & wb1.Name & "]" & "Sheet2!" & x.Address
 lookupAdr1 = "[" & wb1.Name & "]" & "Sheet2!" & x1.Address
 Set x1 = wb2.Worksheets("Open").Range("GT2:GT" & LastRow)
 f = "=IF(ISNA(VLOOKUP(" & .Cells(i, 52).Address & ", " _
& lookupAdr & ", 3,),VLOOKUP( " _
& .Cells(i, 54).Address & ", " & lookupAdr1 & ", 2,),VLOOKUP( " _
& .Cells(i, 52).Address & ", " & lookupAdr & ", 3,)))"

 'MsgBox f

 Next i

 .Cells(i, 202).Value = f

 'End If

 End With

 End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...