2017-03-21 6 views
0

次のコードはテキストファイルを検索しますが、現在のファイルのフォルダ位置を使用して同じダイアログボックスをポップアップ表示させたいと考えています。どうすればいい?Excelファイルとインポートを検索するダイアログウィンドウを開きたい

fNameを= Application.GetOpenFilename( "テキストファイル(* .TXT)、* .TXT")

fNameを= "偽" が続いてサブ

With Sheets("data export").QueryTables.Add(Connection:="TEXT;" & fName, _ 
    Destination:=Worksheets("data export").Range("$A$1")) 
     .Name = "sample" 
     .FieldNames = True 
     .RowNumbers = True 
     .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 = xlTextQualifierNone 
     .TextFileConsecutiveDelimiter = True 
     .TextFileTabDelimiter = False 
     .TextFileSemicolonDelimiter = False 
     .TextFileCommaDelimiter = False 
     .TextFileSpaceDelimiter = False 
     .TextFileOtherDelimiter = "" & Chr(10) & "" 
     .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) 
     .TextFileTrailingMinusNumbers = True 
     .Refresh BackgroundQuery:=False 
End With 
+0

なぜこのコードは機能しませんか?それはより簡単に見えます。 = _ "Excelファイル(* .XLS)、* .XLS"、タイトル::=」文字列 バリアントとして暗いfNameAndPath DS = ThisWorkbook.Name fNameAndPath = Application.GetOpenFilename(FileFilterのように、サブSelectFileGetAllSheetsSAS() 薄暗いDSファイルを開くために選択 ") fNameAndPath = False Then Exit Sub Workbooks.Openファイル名:= fNameAndPath Sheets.Copy after:= Workbooks(ds).Sheets(" Master File ") End Sub –

答えて

0

を終了した場合は、ダイアログの検索を持つことができます

: - GetOpenFileName関数を使用してChDir関数でパスを変更

:二つのアプローチを使用して、指定したパス内のExcelのファイル用

- のFileDialogを使用してInitialFileNameプロパティを設定:私はすべてが2007以前を含むファイルを、エクセルフィルタました両方の例で

Dim file As String, fd As FileDialog 

Set fd = Application.FileDialog(msoFileDialogFilePicker) 

With fd 
    .InitialFileName = ActiveWorkbook.Path 
    .Filters.Clear 
    .Filters.Add "Excel files", "*.xls*" 
    .AllowMultiSelect = False 
    If .Show Then 
     file = .SelectedItems(1) 
     MsgBox file 
    End If 
End With 

Set fd = Nothing 

関連する問題