我在非常大的文件中有销售全球销售数据,我需要按国家/地区和产品进行过滤,然后进行分析。由于我需要使用不同的国家/产品组合反复执行相同的分析,我尝试使用宏来执行此操作。
这就是宏的作用:
宏似乎运行正常并且文件正在保存,但是我在第4步和第5步遇到了2个问题:
我更喜欢通过生成没有链接的复制文件来解决这两个问题,但我也对任何可能允许我强制复制文件链接到自身的绑带开放(这似乎不起作用我手动完成)。
如果你想看到这一切,我有完整的代码,但是因为我怀疑问题在于我如何保存文件,所以我只是在这里粘贴。如果您需要查看宏的另一部分,请告诉我。非常感谢任何帮助,提前谢谢。
保存功能:
Public Sub SaveAsCopy(filePath As String)
Dim updateStatus As Boolean
'Check current status of Alerts
updateStatus = Application.DisplayAlerts
'Turn off alerts
Application.DisplayAlerts = False
ThisWorkbook.Sheets.Copy 'creates new workbook without macros"
'The New workbook copy is now the Active workbook
'Delete Control Sheet
ActiveWorkbook.Sheets(1).Delete
'Save Macro free version and close
ActiveWorkbook.SaveAs Filename:=filePath, FileFormat:=51
ActiveWorkbook.Close
'Revert back to origional alert status
Application.DisplayAlerts = updateStatus
End Sub
功能调用:
Call SaveAsCopy(filePath)
答案 0 :(得分:0)
将分享我开发的解决方法,因为我没有得到更优雅的解决方案:
Public Sub SaveAsCopy(filePath As String)
Dim updateStatus As Boolean
'Check current status of Alerts
updateStatus = Application.DisplayAlerts
'Turn off alerts
Application.DisplayAlerts = False
'Hide Control Sheet
ActiveWorkbook.Sheets(1).Visible = False
'Save Macro free version and close
ActiveWorkbook.SaveAs Filename:=filePath, FileFormat:=52
'Unhide
ActiveWorkbook.Sheets(1).Visible = True
'Revert back to original alert status
Application.DisplayAlerts = updateStatus
End Sub
在父函数结束时,我关闭当前文件,重新打开原始文件,然后遍历新工作簿以删除宏。