2012-05-01 3 views
6

В приведенном ниже коде имя файла жестко закодировано, но я хочу, чтобы пользователь мог его выбрать.получение сохранения как имя файла в слове

Я читал про GetSaveAsFilename, но при этом я получаю сообщение об ошибке: «метод или элемент не найден».

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

Это написано для Word 2010. Я ошибаюсь в размышлении GetSaveAsFilename доступен в слове 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 

ответ

4

Вы можете предоставить путь по умолчанию, включая имя файла, как так в диалоге, т.е.

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 Инициализация пути - хорошая идея :) –

+1

одна вещь, которая возвращает только имя не полный путь? но я уверен, что смогу это сделать :) приветствует примеры людей – DevilWAH

4

Я не понимаю, что слово не имеет GetSaveAsFileName или GetOpenFileName методы (которые Excel имеет). Но это не так. Вместо этого, вы можете попробовать SaveAs FileDialog (2003, 2007, 2010):

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

+1 Посмотреть [ этот разработанный пример] (http://stackoverflow.com/questions/5148173/getsaveasfilename-default-folder/5165166#5165166) о том, как использовать 'FileDialog'. –

+0

Doug, я добавил немного другой ответ, так как я не думал, что код выше дал понять, как получить запись пользователя (я думаю, что ему нужно что-то вроде 'dlgSaveAs.SelectedItems (1)') – brettdj

+0

yep У меня было это, но как Бреттдж говорит, что это не возвращает имя файла – DevilWAH

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

With Dialogs(wdDialogFileSaveAs) 
    .Name = strFilePath & strFileName 
    .Show 
End With 
Смежные вопросы