VBA Excel: Utilisation de la boîte de dialogue Saveeas pour les fichiers texte / Types de fichiers personnalisés
Question
J'ai une macro Excel qui écrit une chaîne spécifique à un fichier texte.La prise est, je dois l'enregistrer sous forme de fichier personnalisé (".us1").Je joins mon code actuel ci-dessous.J'ai fini par faire un renversement étrange de la boîte de dialogue ouverte.Que ferais-je pour changer ce code pour utiliser la boîte de dialogue Saveeas?
Private Sub CommandButton2_Click()
Dim fso As New FileSystemObject
Dim stream As TextStream
Dim FilePath As String
Dim ofD As Object
CommandButton2.Height = 53.25
CommandButton2.Width = 83.25
CommandButton2.Left = 222.75
CommandButton2.Top = 508.5
If OptionButton5.Value = True Then
MsgBox "NOTE! This is a bi-phasic script. Every other bit, starting with the first, is a sign bit!!! DISREGARD the graph!!!"
Set ofD = Application.FileDialog(3)
ofD.AllowMultiSelect = False
If ofD.Show = False Then
MsgBox "Script Generation Canceled"
Else
FilePath = ofD.SelectedItems(1)
Set stream = fso.OpenTextFile(FilePath, ForWriting, True)
stream.WriteLine "F3 07 00 31 FA 12 // "
stream.WriteLine "F3 07 00 31 FB " + Cells(27, 2) + " // "
stream.WriteLine "F3 07 00 31 FC 00 // "
stream.WriteLine "F3 25 00 31 FF " + Cells(33, 2) + "// "
stream.WriteLine "F3 07 00 31 FA 13 // "
stream.Close
End If
Else
Set ofD = Application.FileDialog(3)
ofD.AllowMultiSelect = False
If ofD.Show = False Then
MsgBox "Script Generation Canceled"
Else
FilePath = ofD.SelectedItems(1)
Set stream = fso.OpenTextFile(FilePath, ForWriting, True)
stream.WriteLine "F3 07 00 31 FA 10 // "
stream.WriteLine "F3 07 00 31 FB " + Cells(27, 2) + " // "
stream.WriteLine "F3 07 00 31 FC 00 // "
stream.WriteLine "F3 25 00 31 FF " + Cells(33, 2) + "// "
stream.WriteLine "F3 07 00 31 FA 11 // "
stream.Close
End If
End If
End Sub
La solution
J'ai pu résoudre mon problème en sélectionnant le chemin de fichier via la boîte de dialogue Saveeas.Je n'avais étonnamment aucun problème avec le filtre de fichiers.
Private Sub CommandButton2_Click()
Dim fso As New FileSystemObject
Dim stream As TextStream
Dim FilePath As String
Dim saveDialog As Variant
CommandButton2.Height = 53.25
CommandButton2.Width = 83.25
CommandButton2.Left = 222.75
CommandButton2.Top = 508.5
If OptionButton5.Value = True Then
MsgBox "NOTE! This is a bi-phasic script. Every other bit, starting with the first, is a sign bit!!! DISREGARD the graph!!!"
saveDialog = Application.GetSaveAsFilename(FileFilter:="Script Files(*.us1), *.us1")
Set stream = fso.OpenTextFile(saveDialog, ForWriting, True)
stream.WriteLine "F3 07 00 31 FA 12 // "
stream.WriteLine "F3 07 00 31 FB " + Cells(27, 2) + " // "
stream.WriteLine "F3 07 00 31 FC 00 // "
stream.WriteLine "F3 25 00 31 FF " + Cells(33, 2) + "// "
stream.WriteLine "F3 07 00 31 FA 13 // "
stream.Close
Else
saveDialog = Application.GetSaveAsFilename(FileFilter:="Script Files(*.us1),*.us1")
Set stream = fso.OpenTextFile(saveDialog, ForWriting, True)
stream.WriteLine "F3 07 00 31 FA 10 // "
stream.WriteLine "F3 07 00 31 FB " + Cells(27, 2) + " // "
stream.WriteLine "F3 07 00 31 FC 00 // "
stream.WriteLine "F3 25 00 31 FF " + Cells(33, 2) + "// "
stream.WriteLine "F3 07 00 31 FA 11 // "
stream.Close
End If
End Sub
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow