2011-07-19 6 views
1

私はちょうどVBA言語に精通しており、助けていただければ幸いです。私は、既存のタブを新しいファイルで更新するプログラムを作成しようとしています。Excel 2007、既存のタブを更新するためのVBAインポートの新しい.csvファイル

Sub ImportFile() 
' 
' ImportFile Macro 
' 
' Keyboard Shortcut: Ctrl+Shift+I 

    ' Clears active sheet 
    Cells.Select 
    Selection.ClearContents 
    Range("A1").Select 

    ' "Open" prompt window 
    Dim aFile As String 
    aFile = Application.GetOpenFilename(FileFilter:="Comma separated values files, *.csv") 
    If aFile = "False" Then Exit Sub 



    ' Import .csv file to active sheet 
    With ActiveSheet.QueryTables.Add(Connection:= _ 
     "TEXT;C:\Users\jiarui.hou.THRUBIT\Desktop\thrubit\data\PS25R_175c_20110711_proc1.csv" _ 
     , Destination:=Range("$A$1")) 
     .Name = "PS25R_175c_20110711_proc1" 
     .FieldNames = True 
     .RowNumbers = False 
     .FillAdjacentFormulas = False 
     .PreserveFormatting = True 
     .RefreshOnFileOpen = False 
     .RefreshStyle = xlInsertDeleteCells 
     .SavePassword = False 
     .SaveData = True 
     .AdjustColumnWidth = True 
     .RefreshPeriod = 0 
     .TextFilePromptOnRefresh = False 
     .TextFilePlatform = 437 
     .TextFileStartRow = 1 
     .TextFileParseType = xlDelimited 
     .TextFileTextQualifier = xlTextQualifierDoubleQuote 
     .TextFileConsecutiveDelimiter = False 
     .TextFileTabDelimiter = False 
     .TextFileSemicolonDelimiter = False 
     .TextFileCommaDelimiter = True 
     .TextFileSpaceDelimiter = False 
     .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _ 
     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) 
     .TextFileTrailingMinusNumbers = True 
     .Refresh BackgroundQuery:=False 
    End With 
End Sub 

しかし、問題は、第三部の最初の2行である、それは特定のファイルに指示します。 は、ここで私がこれまで持っているものです。しかし、プログラムでは、特に選択したファイルをインポートする必要があります。私は、現在の特定のディレクトリアドレスの代わりにそのディレクトリアドレスをリンクする3番目の部分に、ファイルを開くためのウィンドウを表示する2番目の部分をどのようにリンクするのかということです。

答えて

0

は、連結演算子&を使用して、接続に渡す文字列は"TEXT;" & aFile

With ActiveSheet.QueryTables.Add(Connection:= "TEXT;" & aFile, Destination:=Range("$A$1")) 

ことにする。また、私はあなたが7行にFalseをしたいの代わりに"False"と思います。

関連する問題