excel - Excel 工作表宏是否有原因在 Excel 2013 中损坏但在 Office 355 中工作正常?
问题描述
因此,我为一家与时俱进的公司工作,并要求员工在一天结束时手动将销售数据输入电子表格。我厌倦了,所以我创建了一个单独的 VBA Excel 程序来自动化它。
在过去的两个月里,它一直运行良好,但似乎无缘无故地损坏了我最近运行程序时正在改变的电子表格。尝试在工作 PC 上打开电子表格并启用宏会导致 Excel (2013) 崩溃。不过,打开其他工作表并在其上启用宏可以正常工作。
我尝试通过电子邮件将其发送给自己以找出原因,但它可以正确打开并且我的 Excel 版本(Office 365)没有问题
我知道损坏必须在我的程序运行之前或刚开始运行之后发生,因为它在更改/输入任何数据之前执行电子表格的备份,并且备份在工作 PC 上也已损坏。
尝试简化一百行代码和 5 个辅助函数左右;它打开所需的文件,Workbooks.Open (ThisWorkbook.path & "\" & file)
其中文件只是要更改的工作簿的名称;然后它会执行备份并删除超过 7 天的备份。
这是通用备份代码:
Private Sub deleteBackup(folderName As String)
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each fcount In FSO.GetFolder(ThisWorkbook.path & folderName).Files
If DateDiff("d", fcount.DateLastModified, Now()) > 7 Then
Kill fcount
End If
Next fcount
End Sub
Private Sub backup(fileName As String)
Dim Monthly As Workbook
Dim dateStamp As String
dateStamp = Format(returnDailyDate(), "dd.mm.yyyy")
' Check if folders exist, if they don't, create them
If Dir(ThisWorkbook.path & BackupPath, vbDirectory) = vbNullString Then
MkDir (ThisWorkbook.path & BackupPath)
End If
Set Monthly = Workbooks(MonthlyPath)
Monthly.Save
Set FileSystemObject = CreateObject("Scripting.FileSystemObject")
FileSystemObject.CopyFile ThisWorkbook.path & "\" & MonthlyPath, ThisWorkbook.path & BackupPath & fileName & dateStamp & FileExtension
End Sub
为什么会发生这种情况,或者为什么它在 2013 年不起作用但在 365 年起作用,是否有合乎逻辑的原因?如果这是一个随机的不可避免的小问题,涉及内存不足或其他什么(我们只是说工程开发部门不是最好的),或者我的程序是否导致了损坏并且将来可能再次发生这种情况。
谢谢你的时间。
更新:所以发送office 365打开并在365工作的工作簿;回到工作电脑,现在工作正常。所以我假设 365 比 2013 有更好的纠错,但我仍然不知道是什么导致了错误。
解决方案
推荐阅读
- javascript - 在Angular 5中制作饼图
- python - ValueError 在 pytest 中不使用任何参数,装饰器的顺序重要吗?
- python - 加载 EMNIST 字母数据集
- spacemacs - 如何在 spacemacs 中配置 org-mode
- python - 如何使用scrapy跟踪分页
- reactjs - Reactjs:Axios.post 调用从数据库返回数组对象 - 需要映射到其他组件
- java - .txt 文件中的 Java AES 解密仅适用于 IDE
- css - CSS网格坏了
- azure - Application Insight - 适用于 .NET Core,但不适用于 Service Fabric 中的网站
- xamarin - 动态加载xml控件并共享UI控件