检查 header 的文件是否为空
checking whether a file with header is empty
我正在编写 VBA 代码来检查其他一些文件是否为空。这些文件都有 headers 所以我想检查 "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
错误消息是 run-time 错误“9”:下标超出范围。基本上,我想访问另一个 table 中的 "A2" 单元格并检查是否为空,然后关闭它。
尝试在打开文件时设置工作簿 object 类型变量。
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
块确定的 parent。打开的工作簿由分配给工作簿 object.
的 wbo
变量明确引用
如果这些文件是 CSV 并且它们都有一个共同的 header,则检查文件大小是否大于 header-only 文件,您不必打开它们来确定是否他们人口众多。
我正在编写 VBA 代码来检查其他一些文件是否为空。这些文件都有 headers 所以我想检查 "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
错误消息是 run-time 错误“9”:下标超出范围。基本上,我想访问另一个 table 中的 "A2" 单元格并检查是否为空,然后关闭它。
尝试在打开文件时设置工作簿 object 类型变量。
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
块确定的 parent。打开的工作簿由分配给工作簿 object.
wbo
变量明确引用
如果这些文件是 CSV 并且它们都有一个共同的 header,则检查文件大小是否大于 header-only 文件,您不必打开它们来确定是否他们人口众多。