检查带有标题的文件是否为空

我正在写一个VBA代码来检查其他文件是否为空。 这些文件都有标题,所以我想检查“A2”单元格是否为空或长度为零。 我的代码如下,file1,dir1,dirfile1是文件名,目录,path。 我也有一个问题,我是否需要打开该文件才能访问其“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 

错误消息是运行时错误“9”:下标超出范围。 基本上,我想访问另一个表中的“A2”单元格,并检查是否为空,然后closures它。

尝试在打开文件时设置工作簿对象typesvariables。

 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块确定的父代。 打开的工作簿由分配给工作簿对象的wbovariables显式wbo

如果这些文件是CSV文件,并且它们都有一个共同的头文件,那么请检查文件大小是否大于仅包含头文件,并且不必打开它们以确定它们是否已填充。