主要不想再来研究你的表了,给你一条Ecel中用 ADO 的打开连接的语句:
dim cnn As New ADODB.Connection
dim rs As New ADODB.Recordset
dim str as string
cnn.Open "Provider=Microsoft.Jet.OleDb.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
str="Select 字段名n From [表名$]" '注意,这个表名后面一定要带上这个美元符号“ $”
rs.open str,cnn,adOpenDynamic, adLockOptimistic, adCmdText
这样,你就可以在Excel中,就象在Access中使用查询一样的查询了。
至于你的相关文件夹,我用下面的函数,可以列出你的指定文件夹下的所有文件名,根据你自己的要求去判断哪些文件要怎样处理,你自己去调用,函数如下:
'获得文件夹中某种类型文件的文件名列表
Function ShowFileList(FolderSpec, Optional ExName) As Collection
'参数:ShowFileList :文件路径,后面不能带 "\"
' ExName: :扩展名,如电子表格就是 "xls",不用带点 ".",如果输入此参数,则为所有文件
Dim fs, f, f1, fc, s, N
Dim c As New Collection
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(FolderSpec)
Set fc = f.Files
For Each f1 In fc
N = f1.Name
If IsMissing(ExName) Then
c.Add N
Else
If Trim(UCase(ExName)) = Trim(UCase(Right(N, Len(N) - InStrRev(N, ".", , vbTextCompare)))) Then
c.Add N
End If
End If
Next
Set ShowFileList = c
Set c = Nothing: Set fc = Nothing: Set f = Nothing: Set fs = Nothing
End Function
上面函数调用例子如下,下面的示例过程将在立即窗口列出所有C:根目录下的所有文件(需要注意,我那个函数是返回Collection集合类,所以,你要声明这个类的变量来列举它的条目。
Sub xx()
Dim fName
Dim fds As New Collection
Set fds = getFileList("c:")
For Each fName In fds
Debug.Print fName
Next
End Sub