我有超过100个文件以分号分隔的文件(* .asc,但是与文本文件打开相同)导入到工作表中。我可以每次选择文件并根据需要更新脚本中的文件夹。我只是想节省点击菜单的时间。从“文本”文件导入数据时出错
我可以成功选择文件,但它会给出“Error 104 Excel无法找到文本文件来刷新此外部数据范围”后.Refresh BackgroundQuery行。
我没有正确引用一些东西吗?
Sub Macro2input()
'
' Macro2input Macro
'
'
Dim Start1 As Range
'Dim SourceCells As Range
'Dim DestinationCells As Range
'Dim NextStart As Range
Set Start1 = ActiveCell
Dim Finfo As String
Dim vFilename As Variant
Dim fileToOpen As Variant
rootDir = "X:\Lab Tests\13-7242\Re-run Calon\1-B"
Finfo = "All Files (*.*), *.*"
'Sets the default folder for selecting a file
ChDrive "X:"
ChDir rootDir
Filename = Application.GetOpenFilename(Finfo, 1, "Select A File To Import")
vFilename = rootDir & Filename
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" + vFilename, Destination:=Start1)
.Name = Filename
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveCell.Offset(0, 8).Select
End Sub
你不会对我的建议感到满意,但我会用ADODB来完成你的任务,而不是使用'QueryTable',这是我不能真正依赖的。 – 2013-04-23 22:06:24