Ошибка Runtime Ошибка 13 типа Excel
Я надеюсь, что вы можете помочь, у меня есть код ниже, и я получаю ошибку 13 во время выполнения этой строки
If Sheets("Input").Range("A11:C100").Value = "" Then
То, что я пытаюсь достичь, – не позволить пользователю сохранять книгу Excel без заполнения ячеек в диапазоне («A11: C100»). Код работает нормально, если он просто («A11»), но если я увеличу диапазон I получить ошибку.
Остальная часть моего кода ниже любой помощи будет очень признательна.
- Ошибка «Подстрока вне диапазона» при попытке изменить цвет текста на основе значений ячеек
- Ошибка выполнения VBA 9
- Excel VBA - Назначение свойств ячейки вызывает номер ошибки 1004
- проблема вне кода вызывает проблемы внутри кода
- Ошибка -2147417848 (& H80010108): вызванный объект отключился от своих клиентов
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'Step 1: Check to see if Cell A1 is blank If Sheets("Input").Range("A11:C100").Value = "" Then 'Step 2: Blank: cancel the Close and tell the user Cancel = True MsgBox "Cells A11 to C100 can not be blank" 'Step 3: Not Blank; Save and Close Else ActiveWorkbook.Close SaveChanges:=True End If End Sub
Изображение листа
- Ошибка выполнения при использовании сценария VBA в SSIS
- Ошибка времени выполнения VBA 1004 Метод AutoFilter класса Range Failed
- Невозможно получить доступ к ячейкам в Sub из переданного в рабочем листе
- Excel VBA «Переполнение» Ошибка при установке Range.Value
- изменение ошибки div0 в значение (получение ошибки 13) vba excel
- Скопируйте и вставьте в последнюю строку, Ошибка 91
- VBA Runtime Error ... но я не могу нажать на debug
- Ошибка выполнения «9» при удалении модуля Excel VBA
Sheets("Input").Range("A11:C100").Value
возвращает массив Variant
со всем содержимым ячеек в диапазоне, поэтому вы не можете сравнивать его со строкой типа ""
-
если вам нужно проверить, заполнена ли хотя бы одна ячейка диапазона, тогда
вместо:
If Sheets("Input").Range("A11:C100").Value = "" Then
использование
If WorksheetFunction.CountA(Sheets("Input").Range("A11:C100")) = 0 Then
-
если вам нужно проверить, заполнены ли все ячейки диапазона, тогда
вместо:
If Sheets("Input").Range("A11:C100").Value = "" Then
использование
If WorksheetFunction.CountA(Sheets("Input").Range("A11:C100")) < Sheets("Input").Range("A11:C100").Count Then