Вы можете подготовить электронную таблицу, которую вы хотите проверить, как описано ниже, и оценить специальные ячейки, содержащие функции IS , их легко проверить на True
или False
в VBA. Кроме того, вы можете написать свою собственную функцию VBA, как показано ниже.
Есть Функции Excel , которые проверяют ячейки на наличие специальных значений, например:
=ISNA(C1)
(предполагается, что C1 - это ячейка для проверки). Это вернет True
, если ячейка #N/A
, в противном случае False
.
Если вы хотите показать, имеет ли диапазон ячеек (скажем, "C1:C17
") какую-либо ячейку, содержащую #N/A
или нет, может показаться целесообразным использовать:
=if(ISNA(C1:C17); "There are #N/A's in one of the cells"; "")
К сожалению, это не так , он не будет работать, как ожидалось. Вы можете оценить только одну ячейку.
Однако вы можете сделать это косвенно , используя:
=if(COUNTIF(E1:E17;TRUE)>0; "There are #N/A's in one of the cells"; "")
при условии, что каждая из ячеек E1
- E17
содержит ISNA
формул для каждой ячейки для проверки:
=ISNA(C1)
=ISNA(C2)
...
=ISNA(C17)
Вы можете скрыть столбец E
, щелкнув правой кнопкой мыши по столбцу и выбрав Скрыть в контекстном меню Excel, чтобы пользователь вашей электронной таблицы не мог видеть этот столбец. К ним все еще можно получить доступ и оценить, даже если они скрыты.
В VBA вы можете передать объект диапазона в качестве параметра RANGE
и оценить значения индивидуально, используя цикл FOR:
Public Function checkCells(Rg As Range) As Boolean
Dim result As Boolean
result = False
For Each r In Rg
If Application.WorksheetFunction.IsNA(r) Then
result = True
Exit For
End If
Next
checkCells = result
End Function
Эта функция использует функцию IsNA () для внутренних целей. Он должен быть размещен внутри модуля, а затем может быть использован внутри электронной таблицы, например:
=checkCells(A1:E5)
Возвращает True
, если любая ячейка равна #N/A
, в противном случае False
. Вы должны сохранить книгу как книгу с поддержкой макросов (расширение XLSM
) и убедиться, что макросы не отключены.
Excel предоставляет больше функций, как указано выше:
ISERROR(), ISERR(), ISBLANK(), ISEVEN(), ISODD(), ISLOGICAL(),
ISNONTEXT(), ISNUMBER(), ISREF(), ISTEXT(), ISPMT()
Например, ISERR()
проверяет все ошибки в ячейках, кроме #N/A
, и полезно для обнаружения ошибок вычислений.
Все эти функции описаны в встроенной справке Excel (нажмите F1, а затем введите «Функции IS» в качестве текста для поиска объяснения). Некоторые из них могут использоваться внутри VBA, некоторые могут использоваться только как макрофункция ячейки.