如何在VBA中使用输入框保存工作簿?

  • 本文关键字:保存 工作簿 VBA vba excel
  • 更新时间 :
  • 英文 :


我正在尝试根据用户决定命名文件的内容打开并保存工作簿。我能够打开并保存工作簿,但我无法弄清楚如何为用户提供更改保存文件名的选项。这是我的代码:

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上打开,因此您可以使用ChDriveChDir来控制默认目录。

你来了:

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

相关内容

  • 没有找到相关文章