Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VBA在导入excel之前过滤文本文件数据_Excel_Vba - Fatal编程技术网

使用VBA在导入excel之前过滤文本文件数据

使用VBA在导入excel之前过滤文本文件数据,excel,vba,Excel,Vba,我是VBA和这个论坛的新手。我为我的文章篇幅长、格式错误和一般性的不必要提前道歉 我有一个存储在共享驱动器上的.txt文件,该文件包含多个产品的详细信息。此文件包含超过1048576行的数据,因此无法直接导入excel工作表。我希望在导入之前根据第5个字段的值60(第5个字段标记为“GL”)过滤数据 经过一些研究,我能够把下面的模块组合起来。在“.CommanText”数组中,当我执行“select*”操作时,我会得到所有行。但是,当我尝试添加where子句来过滤数据时,我得到一个错误“运行时错

我是VBA和这个论坛的新手。我为我的文章篇幅长、格式错误和一般性的不必要提前道歉

我有一个存储在共享驱动器上的.txt文件,该文件包含多个产品的详细信息。此文件包含超过1048576行的数据,因此无法直接导入excel工作表。我希望在导入之前根据第5个字段的值60(第5个字段标记为“GL”)过滤数据

经过一些研究,我能够把下面的模块组合起来。在“.CommanText”数组中,当我执行“select*”操作时,我会得到所有行。但是,当我尝试添加where子句来过滤数据时,我得到一个错误“运行时错误'1004:常规ODBC错误”。单击“调试”时,下面的一行将突出显示

.Refresh BackgroundQuery:=False

Sub ReadTextFile()
 ActiveSheet.Range("A1:S1045876").ClearContents 'clearing existing contents

 With ActiveSheet.QueryTables.Add(Connection:=Array(Array("ODBC;DefaultDir=\\ant.org.com\dept\Systems\ABC\Data;Driver={Microsoft Text Driver (*.txt; *.csv)};DriverId=27;FIL=text;MaxBufferSize=2048;MaxSc"), Array("anRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;")), Destination:=Range("A2"))
 .CommandText = Array( _
"SELECT * " & Chr(13) & "" & Chr(10) & "FROM filename.txt DQ") 'DQ is an arbitrary alias
.Name = "Query from Text"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.BackgroundQuery = True
.Refresh BackgroundQuery:=False

End With

'code for excel "text to column" function

End Sub

请您帮助添加在导入之前从文本文件中筛选数据的功能。

Field 5是一个输入错误。这是字段5请包含您尝试过的“where”子句。“SELECT*FROM filename.txt where GL=60”应该有效Hi Tim,我尝试了下面的where子句,但不断得到错误运行时错误“1004:General ODBC error.”。CommandText=Array(u“SELECT*”&Chr(13)&“&Chr(10)&”来自IDQ_报告_uall_GL_LEAF_DEFECT_umkt_44571.txt DQ,其中GL=60”)我也尝试过F5=60[I]GL[/I]=60,并在每次单击调试时对值使用单引号,即GL='60'。刷新背景查询:=False“突出显示字段5是一个输入错误。这是字段5请包含您尝试过的“where”子句。“SELECT*FROM filename.txt where GL=60”应该有效Hi Tim,我尝试了下面的where子句,但不断得到错误运行时错误“1004:General ODBC error.”。CommandText=Array(u“SELECT*”&Chr(13)&“&Chr(10)&”FROM IDQ_Report_ALL_GL_LEAF_DEFECT_MKT_44571.txt DQ,其中GL=60”)我也尝试过F5=60[I]GL[/I]=60,并在每次单击debug时对值使用单引号,即GL='60'。“刷新背景查询:=False”突出显示