2016-01-05 2 views
0

Я ищу код VBA, который мог бы помочь мне применить VLOOKUP в столбце «L», но только ячейки с определенным текстом.Условный VLOOKUP с конкретным текстом

Например, если значение в ячейке в столбце «L» равно «# N/A», тогда оно должно заменить его значением, возвращаемым из VLOOKUP. Если значение не «# N/A», оно не должно изменять фактическое значение в ячейке.

Вот код, который я пытался

Range("L:L").NumberFormat = "mm/dd/yyyy" 
lastrow6 = Range("K" & Rows.Count).End(xlUp).Row 
Range("L3").Formula = "=IF(ISNA(VLOOKUP(A3,'[Ref_Data_Vivar.xlsx]Legacy PCO'!$A$2:$B$25628,2,0)),"""",IF(ISERROR(FIND(""#N/A"", VLOOKUP(A3,'[Ref_Data_Vivar.xlsx]Legacy PCO'!$A$2:$B$25628,2,0)))" 
Range("L3").AutoFill Destination:=Range("L3:L" & lastrow3) 
Range("L:L").value = Range("L:L").value 
+0

Вместо того, чтобы просить в интернете для «кода VBA», дайте ему попробовать первый, а затем задайте конкретный вопрос о VBA. Там есть много учебников VBA. – CodeJockey

+0

Однако я просмотрел несколько руководств, но не смог найти тот, который мог бы помочь мне разрешить мой запрос. Я попробовал код ниже, но не работал 'Range (« L: L »). NumberFormat =« mm/dd/yyyy » lastrow = Range (« K »& Rows.Count) .End (xlUp) .Row Диапазон ("L3"). Формула = "= IF (ISNA (VLOOKUP (A3, '[Ref_Data_Vivar.xlsx] Legacy PCO'! $ A $ 2: $ B $ 25628,2,0))," " "", IF (ISERROR (FIND ("" # N/A "", VLOOKUP (A3, '[Ref_Data_Vivar.xlsx] Legacy PCO'! $ A $ 2: $ B $ 25628,2,0))) " Диапазон («L3»). Автозаполнение: = Диапазон («L3: L» и последний) Диапазон («L: L»). Value = Range («L: L»). Value' –

+1

Посмотрите на функцию VBA [IsError ] (https://msdn.microsoft.com/en-us/library/office/gg278547.aspx). – Jeeped

ответ

0

Что-то вроде этого следует сделать трюк:

Sub FindErrorInRange() 

Dim cell As Variant 
Dim rng As Range 

'data range: 
Set rng = Sheet1.Range("A1:A10") 

For Each cell In rng 

    'checks for '#N/A error: 
    If CVErr(cell) = CVErr(xlErrNA) Then 
     'do something here: 
     MsgBox ("error found") 
     'example: 
     cell.Value = Application.WorksheetFunction.Lookup() '<-- insert your lookup values 
    End If 

Next cell 

End Sub 
Смежные вопросы