2012-05-01 66 views
6

En el siguiente código, el nombre del archivo está codificado, pero quiero que el usuario pueda elegirlo.obteniendo guardar como nombre de archivo en la palabra

Estaba leyendo acerca de GetSaveAsFilename pero me sale un error al usarlo: "método o miembro no encontrado".

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

Esto está escrito para Word 2010. ¿Me equivoco al pensar GetSaveAsFilename está disponible en 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 

Respuesta

4

le puede proporcionar un camino predeterminado, ya nombre de fichero como por lo que el cuadro de diálogo, es decir

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 Inicializar la ruta es una buena idea :) –

+1

una cosa que solo devuelve el nombre y no la ruta completa? pero seguro que puedo solucionarlo :) aplausos por los ejemplos personas – DevilWAH

4

No me di cuenta de que la palabra no tiene métodos GetSaveAsFilename o GetOpenFileName (que tiene Excel). Pero no es así En su lugar puede probar el GuardarComo FileDialog (2003, 2007, 2010):

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

+1 Ver [ esto resuelto ejemplo] (http://stackoverflow.com/questions/5148173/getsaveasfilename-default-folder/5165166#5165166) de cómo usar 'FileDialog'. –

+0

Doug, agregué una respuesta ligeramente diferente ya que no creía que el código anterior dejara en claro cómo recuperar la entrada del usuario (creo que necesita algo como 'dlgSaveAs.SelectedItems (1)') – brettdj

+0

sí, tuve esto pero como Brettdj dice que esto no devuelve celamente el nombre del archivo – DevilWAH

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

With Dialogs(wdDialogFileSaveAs) 
    .Name = strFilePath & strFileName 
    .Show 
End With 
Cuestiones relacionadas