Excel VBA-为什么我的;另存为;不工作?
我有一个VBA脚本,如果单元格为空,Excel将提示保存文件 这是为了确保模板不被更改。但是,当用户在“另存为”对话框中单击“保存”时,文件不会保存 这是我正在使用的代码:Excel VBA-为什么我的;另存为;不工作?,vba,excel,Vba,Excel,我有一个VBA脚本,如果单元格为空,Excel将提示保存文件 这是为了确保模板不被更改。但是,当用户在“另存为”对话框中单击“保存”时,文件不会保存 这是我正在使用的代码: If Worksheets("Input").Range("E2").Value = "" Then Application.EnableEvents = False Application.GetSaveAsFilename InitialFileName:="\\ac35542\Problem Manag
If Worksheets("Input").Range("E2").Value = "" Then
Application.EnableEvents = False
Application.GetSaveAsFilename InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm"
Application.EnableEvents = True
MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title"
Worksheets("Input").Select
Range("E2").Select
End If
为什么文件没有保存?作为后续操作从
Application.GetSaveAsFilename显示标准的“另存为”对话框
并从用户获取文件名,而不实际保存任何文件名
文件。
改用这个:
Dim fileSaveName
If Worksheets("Input").Range("E2").Value = "" Then
Application.EnableEvents = False
fileSaveName = Application.GetSaveAsFilename(InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
Application.EnableEvents = True
If fileSaveName <> "False" Then
Application.DisplayAlerts = False
ThisWorkbook.SaveAs (fileSaveName)
Application.DisplayAlerts = True
End If
MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title"
Worksheets("Input").Select
Range("E2").Select
End If
Dim fileSaveName
如果工作表(“输入”).Range(“E2”).Value=”“,则
Application.EnableEvents=False
fileSaveName=Application.GetSaveAsFilename(初始文件名:=“\\ac35542\Problem Management\Action plan\ChangeMe.xlsm”,文件筛选器:=“启用Excel宏的工作簿(*.xlsm),*.xlsm”)
Application.EnableEvents=True
如果fileSaveName为“False”,则
Application.DisplayAlerts=False
ThisWorkbook.SaveAs(文件名)
Application.DisplayAlerts=True
如果结束
MsgBox“请确保填写问题参考编号、问题标题,并选择合同”,VBE感叹号,“PR参考和标题”
工作表(“输入”)。选择
范围(“E2”)。选择
如果结束
作为后续行动
Application.GetSaveAsFilename显示标准的“另存为”对话框
并从用户获取文件名,而不实际保存任何文件名
文件。
改用这个:
Dim fileSaveName
If Worksheets("Input").Range("E2").Value = "" Then
Application.EnableEvents = False
fileSaveName = Application.GetSaveAsFilename(InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
Application.EnableEvents = True
If fileSaveName <> "False" Then
Application.DisplayAlerts = False
ThisWorkbook.SaveAs (fileSaveName)
Application.DisplayAlerts = True
End If
MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title"
Worksheets("Input").Select
Range("E2").Select
End If
Dim fileSaveName
如果工作表(“输入”).Range(“E2”).Value=”“,则
Application.EnableEvents=False
fileSaveName=Application.GetSaveAsFilename(初始文件名:=“\\ac35542\Problem Management\Action plan\ChangeMe.xlsm”,文件筛选器:=“启用Excel宏的工作簿(*.xlsm),*.xlsm”)
Application.EnableEvents=True
如果fileSaveName为“False”,则
Application.DisplayAlerts=False
ThisWorkbook.SaveAs(文件名)
Application.DisplayAlerts=True
如果结束
MsgBox“请确保填写问题参考编号、问题标题,并选择合同”,VBE感叹号,“PR参考和标题”
工作表(“输入”)。选择
范围(“E2”)。选择
如果结束
作为后续行动
Application.GetSaveAsFilename显示标准的“另存为”对话框
并从用户获取文件名,而不实际保存任何文件名
文件。
改用这个:
Dim fileSaveName
If Worksheets("Input").Range("E2").Value = "" Then
Application.EnableEvents = False
fileSaveName = Application.GetSaveAsFilename(InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
Application.EnableEvents = True
If fileSaveName <> "False" Then
Application.DisplayAlerts = False
ThisWorkbook.SaveAs (fileSaveName)
Application.DisplayAlerts = True
End If
MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title"
Worksheets("Input").Select
Range("E2").Select
End If
Dim fileSaveName
如果工作表(“输入”).Range(“E2”).Value=”“,则
Application.EnableEvents=False
fileSaveName=Application.GetSaveAsFilename(初始文件名:=“\\ac35542\Problem Management\Action plan\ChangeMe.xlsm”,文件筛选器:=“启用Excel宏的工作簿(*.xlsm),*.xlsm”)
Application.EnableEvents=True
如果fileSaveName为“False”,则
Application.DisplayAlerts=False
ThisWorkbook.SaveAs(文件名)
Application.DisplayAlerts=True
如果结束
MsgBox“请确保填写问题参考编号、问题标题,并选择合同”,VBE感叹号,“PR参考和标题”
工作表(“输入”)。选择
范围(“E2”)。选择
如果结束
作为后续行动
Application.GetSaveAsFilename显示标准的“另存为”对话框
并从用户获取文件名,而不实际保存任何文件名
文件。
改用这个:
Dim fileSaveName
If Worksheets("Input").Range("E2").Value = "" Then
Application.EnableEvents = False
fileSaveName = Application.GetSaveAsFilename(InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
Application.EnableEvents = True
If fileSaveName <> "False" Then
Application.DisplayAlerts = False
ThisWorkbook.SaveAs (fileSaveName)
Application.DisplayAlerts = True
End If
MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title"
Worksheets("Input").Select
Range("E2").Select
End If
Dim fileSaveName
如果工作表(“输入”).Range(“E2”).Value=”“,则
Application.EnableEvents=False
fileSaveName=Application.GetSaveAsFilename(初始文件名:=“\\ac35542\Problem Management\Action plan\ChangeMe.xlsm”,文件筛选器:=“启用Excel宏的工作簿(*.xlsm),*.xlsm”)
Application.EnableEvents=True
如果fileSaveName为“False”,则
Application.DisplayAlerts=False
ThisWorkbook.SaveAs(文件名)
Application.DisplayAlerts=True
如果结束
MsgBox“请确保填写问题参考编号、问题标题,并选择合同”,VBE感叹号,“PR参考和标题”
工作表(“输入”)。选择
范围(“E2”)。选择
如果结束
我认为Dmitry Pavlip的方法很好,但我认为“InitialFileName:=”\ac35542\Problem Management\Action Plans\ChangeMe.xlsm”部分使它的动态性稍差一些
对我来说,下面的代码工作得非常好:
ExportPath = Application.GetSaveAsFilename(FILEFILTER:="Excel Files (*.xlsx), *.xlsx", Title:="")
'Basically, user will specify the path and give it a name and click on Save. It won't get saved until the next line though.
ActiveWorkbook.SaveAs (ExportPath)
我认为Dmitry Pavlip的方法很好,但我认为“InitialFileName:=”\ac35542\Problem Management\Action Plans\ChangeMe.xlsm”部分使它的动态性稍差一些 对我来说,下面的代码工作得非常好:
ExportPath = Application.GetSaveAsFilename(FILEFILTER:="Excel Files (*.xlsx), *.xlsx", Title:="")
'Basically, user will specify the path and give it a name and click on Save. It won't get saved until the next line though.
ActiveWorkbook.SaveAs (ExportPath)
我认为Dmitry Pavlip的方法很好,但我认为“InitialFileName:=”\ac35542\Problem Management\Action Plans\ChangeMe.xlsm”部分使它的动态性稍差一些 对我来说,下面的代码工作得非常好:
ExportPath = Application.GetSaveAsFilename(FILEFILTER:="Excel Files (*.xlsx), *.xlsx", Title:="")
'Basically, user will specify the path and give it a name and click on Save. It won't get saved until the next line though.
ActiveWorkbook.SaveAs (ExportPath)
我认为Dmitry Pavlip的方法很好,但我认为“InitialFileName:=”\ac35542\Problem Management\Action Plans\ChangeMe.xlsm”部分使它的动态性稍差一些 对我来说,下面的代码工作得非常好:
ExportPath = Application.GetSaveAsFilename(FILEFILTER:="Excel Files (*.xlsx), *.xlsx", Title:="")
'Basically, user will specify the path and give it a name and click on Save. It won't get saved until the next line though.
ActiveWorkbook.SaveAs (ExportPath)
GetSaveAsFilename
只返回用户选择的路径和文件名:它实际上不进行任何保存。如果要保存文件,必须调用SaveAs
。@TimWilliams有没有办法只显示“另存为”提示,以便用户可以修改文档?抱歉,@Tim在发布回答应用程序对话框(xlDialogSaveAs)时没有看到您的评论.Show
GetSaveAsFilename
仅返回用户选择的路径和文件名:它实际上不进行任何保存。如果要保存文件,必须调用SaveAs
。@TimWilliams有没有办法只显示“另存为”提示,以便用户可以修改文档?抱歉,@Tim在发布回答应用程序对话框(xlDialogSaveAs)时没有看到您的评论.Show
GetSaveAsFilename
仅返回用户选择的路径和文件名:它实际上不进行任何保存。你没有