2013-12-15 2 views
2

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

Мой код:

Dim strPath As String 
strPath = "MyFileName.dat" 
Dim fnum As Integer 
fnum = FreeFile() 
Open strPath For Output As #fnum 

'my code 

Close #fnum 

При запуске это всегда идет к документам. Я попытался «../MyFileName.dat», и он работал с некоторыми из мест, в которых я пытался помещать таблицу Excel, но не со всеми.

Каков правильный способ сделать это. Спасибо.

ответ

3

Предполагая, что данная книга является активной книгой, это будет работать. Он получить полный путь к рабочей книге с FullName и subsitutes имя файла данных для для рабочей книги:

Sub test() 
Dim wb As Excel.Workbook 
Dim strPath As String 

Set wb = ActiveWorkbook 
strPath = Replace(wb.FullName, wb.Name, "MyFileName.dat") 
Dim fnum As Integer 
fnum = FreeFile() 
Open strPath For Output As #fnum 

'my code 

Close #fnum 
End Sub 
+1

+ 1 :) Одно слово предостережения, хотя. Если «Activeworkbook» не сохраняется, файл '.dat' будет сохранен в' CurDir' –

+0

Perfect! Большое спасибо! –