проверка того, что файл с заголовком пуст

Я пишу код VBA, чтобы проверить, пусты ли какие-то файлы или нет. Все эти файлы имеют заголовки, поэтому я хочу проверить, является ли ячейка «A2» пустой или имеет нулевую длину. Мой код ниже, file1, dir1, dirfile1 – имя файла, каталог, путь. У меня также есть проблема, нужно ли мне открыть файл, чтобы получить доступ к его ячейке «A2».

Private Sub CommandButton2_Click() Dim file1, dir1, dirfile1 As String file1 = "NAMBS." & Range("f3") dir1 = Range("D11") dirfile1 = dir1 & "\" & file1 Range("F14").Clear If Len(Dir(dirfile1)) = 0 Then Range("F14") = "missing" Else Workbooks.Open (dirfile1) If IsEmpty(ThisWorkbook.Sheets(dirfile1).Range("a2")) Then Range("F14") = "empty" End If Workbooks(file1).Close End If End Sub 

Ошибка msg – ошибка во время выполнения '9': подзаголовок вне диапазона. В принципе, я хочу получить доступ к ячейке «A2» в другой таблице и проверить, пустой или нет, а затем закрыть ее.

Попробуйте установить переменную типа объекта рабочей книги при открытии файла.

 Private Sub CommandButton2_Click() Dim file1 As String, dir1 As String, dirfile1 As String Dim wbo As Workbook With ThisWorkbook.ActiveSheet file1 = "NAMBS." & .Range("f3") dir1 = .Range("D11") dirfile1 = dir1 & "\" & file1 .Range("F14").Clear If Len(Dir(dirfile1)) = 0 Then .Range("F14") = "missing" Else Set wbo = Workbooks.Open(dirfile1) If IsEmpty(wbo.Sheets(1).Range("a2")) Then .Range("F14") = "empty" End If wbo.Close , False Set wbo = Nothing End If End With End Sub 

Все ссылки на диапазон ячеек передаются обратно родителям, определяемым блоком With/End With . В открытую рабочую книгу явно wbo переменная wbo назначенная для объекта рабочей книги.

Если эти файлы являются CSV, и все они имеют общий заголовок, проверьте размер файла для чего-либо большего, чем файл только для заголовка, и вам не придется открывать их, чтобы определить, заполнены ли они.

  • Поиск повторений значений и изменение значения некоторой другой ячейки на основе результата поиска в VBA excel
  • Логические операторы в Excel: если нет
  • VBA Сохранить как ошибку времени выполнения 1004
  • Ошибка 424 «Требуемый объект» при попытке вычислить количество используемых строк
  • #REF! вставлен как значение, но не рассматривается как таковое при циклировании
  • Функция суммы рабочего листа Excel VBA возвращает ошибку, когда одним из значений является текст
  • Сортировка нескольких ключей в VBA; Ошибка выполнения 450: неправильное количество аргументов или недопустимое присвоение свойств
  • Ошибка времени выполнения VBA 1004 Диапазон ошибок Object_Global
  • Ошибка времени выполнения vba Excel 424
  • Требуется объект Ошибка 424
  • Ошибка «Подстрока вне диапазона» при попытке изменить цвет текста на основе значений ячеек
  • Interesting Posts

    Bash объединяет столбчатые файлы в один файл со строками

    Управление типом диаграммы в xlwings

    Подсчет количества видимых строк после автофильтра

    Создание книги Excel через OLEDB без заголовков

    Разделение больших наборов данных по отдельным критериям

    Экспорт результата SQL в Excel с помощью OPENROWSET, но поставщик не был зарегистрирован

    Поиск средних промежуточных итогов в сводных таблицах

    Столбец Excel заполняет несколько значений

    Форматирование ячеек Excel (валюта)

    Макрос VB в excel для сохранения активного документа в PDF с именем из ячейки

    Запрошенный поставщик OLE DB Microsoft.ACE.OLEDB.12.0 не зарегистрирован. Если 64-разрядный драйвер не установлен, запустите пакет в 32-разрядном режиме

    Графа Excel не соответствует маркерам

    Отфильтровывать строки не столбцы в зависимости от значений в строке

    Как я могу отменить функцию времени Excel на час, минуту и ​​секунду?

    Импорт файла .csv или .xlsx в базу данных mysql с использованием Java?

    Давайте будем гением компьютера.