2017-02-07 5 views
2

Привет, я хочу открыть txt-файл, но он меняет каждый месяц, поэтому мне нужно выбрать новый, просматривающий карту.Vba excel macro open txt file browse

Я полный новичок с VBA, и я записал макрос, но, когда я перехожу в конкретную часть кодирования, я действительно не знаю большинства вещей.

Sub Medical_txt_excel() 

With ActiveSheet.QueryTables.Add(Connection:= _ 
    "TEXT;C:\Users\user101\Documents\Macro Sales Monthly\Dec 2016-selected\Claim Medical.txt" _ 
    , Destination:=Range("$A$10")) 
    .Name = "Claim Medical" 
    .FieldNames = True 
    .RowNumbers = False 
    .FillAdjacentFormulas = False 
    .PreserveFormatting = True 
    .RefreshOnFileOpen = False 

мне нужно Claim Medical.txt быть файл я могу выбрать себя при использовании макроса без изменения исходного кода каждый раз, когда

ответ

1
ChDir "C:\Users\user101\Documents\Macro Sales Monthly\Dec 2016-selected" 
Dim fpath: fPath = Application.GetOpenFilename("Text Files (*.txt),*.txt") 
if fPath = False Then Exit Sub 
With ActiveSheet.QueryTables.Add(Connection:= "TEXT;" & fPath, Destination:=Range("A10")) 
    ... 
End With 
+1

Спасибо этот код работал идеально для того, что я хотел! –

+0

@ M.P Добро пожаловать, рад помочь :) –

0

Попробуйте

Sub Medical_txt_excel() 
Dim fd As Office.FileDialog 
    Set fd = Application.FileDialog(msoFileDialogFilePicker) 
    fd.AllowMultiSelect = False 
    fd.Title = "Please select the file." 
    fd.Show 

With ActiveSheet.QueryTables.Add(Connection:= _ 
    fd.SelectedItems(1) _ 
    , Destination:=Range("$A$10")) 
    .Name = "Claim Medical" 
    .FieldNames = True 
    .RowNumbers = False 
    .FillAdjacentFormulas = False 
    .PreserveFormatting = True 
    .RefreshOnFileOpen = False 
End With 

End Sub