2
我的目標是將excel文件導出爲txt文件格式。這個想法是有一個GUI讓用戶選擇他/她希望導出的excel文件,她/他可以決定保存哪個文件路徑和文件名。一旦用戶完成輸入和輸出設置,他/她只需點擊導出文本按鈕將excel文件導出到txt文件並保存在他/她已決定的位置。在GUI下面通過excel vba將excel文件導出爲txt格式GUI
我有一個宏來轉換Excel文件txt格式
Private Sub ConvertToText()
ActiveWorkbook.SaveAs FileName:="C:\Projects\ExelToText\Text.txt", FileFormat:=xlCurrentPlatformText, CreateBackup:=False
End Sub
我的問題是如何從的FileInput和FileOutput傳遞值變量上面的宏代替對文件路徑進行編碼。感謝您的幫助,如果您有更好的建議,請分享。由於
下面是完整的源代碼
Private Sub ReadButton_Click()
OpenWorkbookUsingFileDialog
End Sub
------------------------------
Private Sub WriteButton_Click()
WriteWorkbookUsingFileDialog
End Sub
------------------------------
Private Sub ExportButton_Click()
ConvertToText
End Sub
------------------------------
Private Sub OpenWorkbookUsingFileDialog()
Dim fdl As FileDialog
Dim FileName As String
Dim FileChosen As Integer
Set fdl = Application.FileDialog(msoFileDialogFilePicker)
fdl.Title = "Please Select a Excel File"
fdl.InitialFileName = "c:\"
fdl.InitialView = msoFileDialogViewSmallIcons
fdl.Filters.Clear
fdl.Filters.Add "Excel Files", "*.xlsx; *.xls"
FileChosen = fdl.Show
If FileChosen <> -1 Then
MsgBox "You have choosen nothing"
ReadTextBox = Null
Else
MsgBox fdl.SelectedItems(1)
FileName = fdl.SelectedItems(1)
ReadTextBox = FileName
End If
End Sub
-----------------------------------
Private Sub WriteWorkbookUsingFileDialog()
Dim file_name As Variant
file_name = Application.GetSaveAsFilename(_
FileFilter:="Text Files,*.txt,All Files,*.*", _
Title:="Save As File Name")
If file_name = False Then Exit Sub
If LCase$(Right$(file_name, 4)) <> ".txt" Then
file_name = file_name & ".txt"
End If
WriteTextBox = file_name
End Sub
----------------------------
Private Sub ConvertToText()
ActiveWorkbook.SaveAs FileName:="C:\Projects\ExelToText\Text.txt",FileFormat:=xlCurrentPlatformText, CreateBackup:=False
End Sub
How我可以重寫suroutine ConvertToText以接受來自ReadTextBox和WriteTextBox的值嗎? – user1902849
請參閱修改:) –
這是有效的。非常感謝 – user1902849