Я искал способ сделать это повсюду.
Я хочу открыть диалоговое окно «Сохранить как», чтобы пользователь мог выберите место для сохранения файла. Но, я хочу, чтобы в поле «Сохранить как тип» было задано значение «Файл с разделителями-запятыми (* .csv)»
Проблема в том, что метод «Фильтр» не работает похоже, работает с «msoFileDialogSaveAs». Можно ли предварительно установить тип файла с помощью «Application.FileDialog (msoFileDialogSaveAs)»?
На данный момент, если я сохраню файл с расширением .csv, а затем открою его в Excel, Я получаю сообщение « Файл, который вы пытаетесь открыть xxx.csv, имеет формат, отличный от указанного в расширении файла ... ». Однако файл работает правильно.
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "xxx"
.AllowMultiSelect = False
.InitialFileName = "xxx.csv"
'.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
result = .Show
If (result <> 0) Then
' create file
FileName = Trim(.SelectedItems.Item(1))
fnum = FreeFile
Open FileName For Output As fnum
' Write the csv data from form record set
For Each fld In rs.Fields
str = str & fld.Name & ", "
Next
' Write header line
str = Left(str, Len(str) - 2) ' remove last semi colon and space
Print #fnum, str
str = ""
' Write each row of data
rs.MoveFirst
Do While Not rs.EOF
For i = 0 To 40
str = str & rs(i) & ", " ' write each field seperated by a semi colon
Next i
str = Left(str, Len(str) - 2) ' remove last semi colon and space
Print #fnum, str
str = ""
rs.MoveNext
Loop
' close file
Close #fnum
End If
End With
Than You!