2012-05-01 16 views
6

Nel codice sotto il nome del file è hardcoded, ma voglio che l'utente sia in grado di selezionarlo.ottenere il salvataggio come nome file nella parola

Stavo leggendo su GetSaveAsFilename ma ottengo un errore quando lo utilizzo: "metodo o membro non trovato".

fileSaveName = Application.GetSaveAsFilename _ 
    (fileFilter:="Excel Files (*.txt), *.txt") 

Questo è scritto per Word 2010. Sbaglio nel pensare GetSaveAsFilename è disponibile in Word VBA?

Sub Macro3() 
' 
' Macro3 Macro 
' 
' 
    ActiveDocument.SaveAs2 FileName:="Questionnaire01-05-20122.txt", _ 
     FileFormat:=wdFormatText, LockComments:=False, Password:="", _ 
     AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _ 
     EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _ 
     :=True, SaveAsAOCELetter:=False, Encoding:=1252, InsertLineBreaks:=False, _ 
     AllowSubstitutions:=False, LineEnding:=wdCRLF, CompatibilityMode:=0 
End Sub 

risposta

4

è possibile fornire un percorso predefinito tra cui il nome del file in questo modo alla finestra di dialogo, cioè

Sub SaveName() 
    Dim strFileName As String 
    Dim StrPath As String 
    'provide default filename 
    StrPath = "c:\temp\test.docx" 
    With Dialogs(wdDialogFileSaveAs) 
     .Name = StrPath 
     If .Display <> 0 Then 
      strFileName = .Name 
     Else 
      strFileName = "User Cancelled" 
     End If 
    End With 
    MsgBox strFileName 
End Sub 
+1

+ 1 L'inizializzazione del percorso è una buona idea :) –

+1

una cosa che restituisce solo il nome non il percorso completo? ma certo che posso risolverlo :) evviva per gli esempi di persone – DevilWAH

4

Non mi rendevo conto che la Parola non ha metodi GetSaveAsFilename o GetOpenFileName (che Excel ha). Ma non è così. Invece si può provare il SaveAs FileDialog (2003, 2007, 2010):

Sub ShowSaveAsDialog() 
Dim dlgSaveAs As FileDialog 
Set dlgSaveAs = Application.FileDialog(FileDialogType:=msoFileDialogSaveAs) 
dlgSaveAs.Show 
End Sub 
+0

+1 See [ questo esempio ha funzionato] (http://stackoverflow.com/questions/5148173/getsaveasfilename-default-folder/5165166#5165166) su come usare 'FileDialog'. –

+0

Doug, ho aggiunto una risposta leggermente diversa in quanto non pensavo che il codice precedente rendesse chiaro come recuperare la voce dell'utente (penso che abbia bisogno di qualcosa come 'dlgSaveAs.SelectedItems (1)') – brettdj

+0

sì, ho avuto questo ma come Brettdj dice che questo non restituisce celatamente il nome del file – DevilWAH

0
Dim strFilePath, strFileName 
strFilePath = "C:\Users\Public\Documents\" 
strFileName = "put-filename-here.docx" 

With Dialogs(wdDialogFileSaveAs) 
    .Name = strFilePath & strFileName 
    .Show 
End With 
Problemi correlati