у меня есть следующий код:

Sub TestNA2()
IsThisNA = Sheets("sheet1").Range("D:D").Select
'Sheets("sheet1").Range("E:E").Select
Range("E2").Formula = "=IF(ISNA(D1),""Delete"","""")"
Range("E2").AutoFill Destination:=Range("E:E"), Type:=xlFillDefault
'ActiveCell.Value = "=IF(ISNA(D:D), ""Delete"","""")"
'ActiveCell.Value = IsThisNA
'MsgBox IsNA
End Sub

но это ошибки в этой строке: ActiveCell.Значение = IfNa(D6, "Удалить")

я хочу поместить слово "удалить" в ячейку E6, если D6 - #NA.

может кто-нибудь помочь мне с этим кодом?

2 ответа2

1

Ошибка в этой строке:

ActiveCell.Value = IfNa(D6, "Delete")

Используйте вместо:

Set IsThisNA = Sheets("items-1").Range("D6")
If Application.WorksheetFunction.IsNA(IsThisNA.Value) Then 
  ActiveCell.Value = "Delete"
End If

или, более кратко:

If Application.WorksheetFunction.IsNA(Sheets("items-1").Range("D6").Value) Then 
  ActiveCell.Value = "Delete"
End If
1

Вы должны сделать строку из формулы. У тебя есть:

ActiveCell.Value = IfNa(D6, "Delete")

Но это должно быть:

ActiveCell.Formula = "=IF(ISNA(D6), ""Delete"","""")"

Обратите внимание, что я добавил второй параметр IF в качестве пустой строки, но вы можете изменить это.

Примечание: вы можете использовать IFNA начиная с Excel 2011 вместо IF(ISNA(..),..) .

Изменить: на основе этого ответа вы можете расширить его на весь столбец:

Range("E1").Formula = "=IF(ISNA(D1),""Delete"","""")"
Range("E1").AutoFill Destination:=Range("E:E"), Type:=xlFillDefault

Вы также можете установить фиксированный диапазон, например, E1:E6 , как указано здесь.

Редактировать 2: если вы хотите заполнить его для всего столбца, вы должны поместить формулу в строку 1 (например, E1) и выполнить автоматическое заполнение по всему столбцу (например, E:E). Если вы хотите меньше строк, вы должны указать это в пункте назначения автозаполнения, например:

Range("E2").Formula = "=IF(ISNA(D6),""Delete"","""")"
Range("E2").AutoFill Destination:=Range("E2:E10"), Type:=xlFillDefault

Таким образом, диапазон автозаполнения начинается с того же места, что и формула (E2 в этом примере).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .