我正在尝试根据用户决定命名文件的内容打开并保存工作簿。我能够打开并保存工作簿,但我无法弄清楚如何为用户提供更改保存文件名的选项。这是我的代码:
Sub Sheets()
Dim wb1 As Workbook
wb1save = Application.InputBox("What would you like to save this file as?")
Set wb1 = Workbooks.Add
wb1.SaveAs ("e:excel"Filename:=wb1save")
End Sub
任何帮助将不胜感激。
谢谢
G
我认为没有理由在这里使用Excel.Application.InputBox
而不是普通的旧VBA.Interaction.InputBox
。如果用户取消提示,该函数将返回一个空字符串指针(尽管是一种未记录的行为(,因此您应该处理它。
Dim result As String
result = InputBox(prompt, default)
If StrPtr(result) = 0 Then Exit Sub
wb1.SaveAs result
但是不要为此使用InputBox
(无论是Excel.Application.InputBox
还是VBA.Interaction.InputBox
- 两者都不适用于这种用户输入(。请改用Application.GetSaveAsFileName
,并获取一个实际的"SaveAs"对话框,支持用户输入文件名,并让他们浏览文件夹而不输入拼写错误。
如果用户取消提示,该函数将返回一个Boolean
值 (False
(,因此您应该处理该值。
Dim result As Variant
result = Application.GetSaveAsFileName
If VarType(result) = vbBoolean Then Exit Sub
wb1.SaveAs result
这样,您几乎可以保证拥有有效的文件/路径。有了InputBox
,就没那么多了。
该对话框将在任何CurDir
上打开,因此您可以使用ChDrive
和ChDir
来控制默认目录。
你来了:
Sub Sheets()
Dim wb1 As Workbook
wb1save = Application.InputBox("What would you like to save this file as?")
Set wb1 = ActiveWorkbook
wb1.SaveAs ("e:excel" & wb1save)
End Sub