2013-04-23 62 views
0

我有超过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 
+0

你不会对我的建议感到满意,但我会用ADODB来完成你的任务,而不是使用'QueryTable',这是我不能真正依赖的。 – 2013-04-23 22:06:24

回答

0

没有现在beeing一个很好的VB威泽德: 你是否真的检查,在与“vFilename = ROOTDIR &文件名”,有在vFilename正确的文件名,你肯定,你可以找到,并允许线访问(exccel-process)vFilename中的文件?从我认为rootDir和Filename之间没有反斜杠,因此不是有效的Filepath。

+0

感谢您的建议。我已经添加了\。同样的错误。在之前的迭代中,我直接放置了文件路径(得到相同的错误),但之后使用了该变体。 – user2313127 2013-04-23 23:31:21

0

我认为在Destination:=Start1.

请使用Destination:=Range("A" & Lastrow),而不是一个问题。