saveas java_在SaveAs之后Excel崩溃

我继承了一个excel项目,我的任务是自动化和进一步开发 .

用例是

订单进来了

用户打开基本(root)excel文件

相关信息中的类型(客户,订单,数据,任务等)

并将新任务文件保存在正在执行任务的文件夹中

保留基础(根)excel basic并为下一个订单做好准备 .

新任务文件需要具有某个已排序的文件名结构 .

我的问题出现在ActiveWorkbook.SaveAs文件名中 .

当我单步执行(F5)行时,它会完成所有步骤,创建文件名,显示另存为用户界面,正确显示正确的文件夹和建议的文件名,并实际保存文件 . 当我从ErrHandler和最后一个Application.EnableEvents = yes出来时 - 它崩溃了 . 它似乎要么关闭基本文件,打开新文件,要么将活动工作簿传输到新的保存文件 .

哪个好,如果它可以停止崩溃 .

If criticalInput then

Msgbox “U been bad, U Shall not PASS!”, vbCritical ‘Not actual text or box showing, just for demo.

Else

Dim fileSaveName As Variant

'### It Crashes after saving (possible at opening)

fileSaveName = Application.GetSaveAsFilename( _

InitialFileName:=tasksfolder & "\" & suggestFilename, _

fileFilter:="Excel-projectmappe med aktive makroer (*.xlsm), *.xlsm")

If fileSaveName False Then

'### here is where you would save your file

DoEvents ‘ Debugging research tells this should be here. Not that is changes anything.

ActiveWorkbook.SaveAs fileSaveName ‘ During dev this has been disabled.

End If ' SaveAs

End If ' criticalInput

ErrHandler:

'## Reset back to default

Application.DefaultFilePath = strDefault

Application.EnableEvents = True

End Sub

调试

如果我禁用SaveAs并且只在base(root)excel文件上工作,我可以很好地保存文件 .

我可以打开新的任务文件并妥善保存 . (只是一个关于覆盖的错误,Y / N)

调试研究说我在SaveAs之前需要一个DoEvents

调试研究也表示只有最相关的参考文献(在我的情况下取消选择OLE自动化)

在调试过程中,我还创建了AfterSave()和Open() . 它们在正常操作期间正常触发,但在SaveAs崩溃时失败 . 例如,当我禁用SaveAs或正常打开excel书时 .

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

On Error GoTo ErrHandler

If Success Then

Application.EnableEvents = False

'MsgBox "Success save", vbInformation ' for debugging purposes.

End If

ErrHandler:

Application.EnableEvents = True

End Sub

Private Sub Workbook_Open()

'MsgBox "I haz been opened, yehawww", vbInformation ' debugging

End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值