Application.Calculation = xlCalculationManual '手动计算

Application.Calculation = xlCalculationAutomatic '自动计算

Application.ScreenUpdating = False '关闭屏幕刷新

Application.DisplayAlerts = False '禁止弹出提示框

Application.EnableEvents = False '禁止事件

Application.CutCopyMode = False'退出复制/剪切模式

Application.ActivateMicrosoftApp Index:=0'使用Windows的计算器

Application.Dialogs(xlDialogOpen).Show'显示内置对话框

Sub search1()

Dim cnn As Object, sql$, rs As Object, i

Set cnn = CreateObject("adodb.connection")             '建立连接对象

Set rs = CreateObject("ADODB.recordset")

cnn.Open "Provider=Microsoft.jet.Oledb.4.0;Extended Properties='text;hdr=no';Data Source=" & ThisWorkbook.Path & ""        '打开数据库

sql = "select * from SurveyPoint_1.txt"                'SQL规则

Range("a1").CurrentRegion.ClearContents

rs.Open sql, cnn, 3, 1           '执行SQL语句

Range("a2").CopyFromRecordset rs           '复制数据

cnn.Close

Set rs = Nothing

Set cnn = Nothing

End Sub


从上面代码看和普通的SQL取数据没有太多区别,只不过这里Data Source是一个文件夹路径,该路径下的所有txt文件都被当成一个表来处理。例子中假设的是没有表头。这里是取所有数据,如果你只取其中几列可以,比如第3列可以写成 "select f3 from SurveyPoint_1.txt" 。