Domanda

Ho il seguente che apre la finestra di dialogo Salvas, tuttavia non sta effettivamente salvando il file quando faccio clic su Salva.

Dim SaveBox As Object
Set SaveBox = Application.FileDialog(msoFileDialogSaveAs)

With SaveBox
.AllowMultiSelect = False
.InitialFileName = "WeeklyLog " & Format(Now, "yyyy_mm_dd")
SaveBox.Show
End With
.

È stato utile?

Soluzione

"... Apre la finestra di dialogo Salvas, tuttavia non sta effettivamente salvando il file quando faccio clic su Salva"

FileDialog può darti una stringa che contiene un percorso del file.Ma in realtà non esegue un funzionamento "Salva come".Spetta a te, lo sviluppatore, usare quel percorso del file nel tuo codice per salvare qualcosa da qualche parte.

Dim SaveBox As Object
Dim strFilePath As String

Set SaveBox = Application.FileDialog(2) ' msoFileDialogSaveAs
With SaveBox
    .InitialFileName = "WeeklyLog " & Format(Date, "yyyy_mm_dd")
    If .Show = True Then
        strFilePath = .SelectedItems(1)
    End If
End With

' now do something with strFilePath ...
If Len(strFilePath) > 0 Then
    MsgBox "File path: " & strFilePath
Else
    MsgBox "Selection cancelled."
End If
.

Altri suggerimenti

Questo salverà un file Excel, penso che tu abbia solo bisogno di un minuscolo bit di modifica per ottenerlo per salvare un PDF:

Sub GetFileName()
    Dim fd As FileDialog
    Dim fname As String

    Do
        Set fd = Application.FileDialog(msoFileDialogSaveAs)
        With fd
            .AllowMultiSelect = False
            .InitialFileName = "New To Do.xls"
            If .Show = -1 Then fname = .SelectedItems(1)

            If fname = fd.InitialFileName Then _
                MsgBox "Please enter a new filename", vbOKOnly, "Filename Needed!"
        End With
    Loop Until fname <> fd.InitialFileName

    If IsEmpty(fname) Or fname = vbNullString Then Exit Sub
    ThisWorkbook.SaveAs fname

End Sub
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top