无法编写宏来自动创建excel工作簿的“可发布”版本(以便其他人可以访问但不能覆盖任何公式或查看查阅工作表)。
我需要创建6个工作簿每月可出版的版本。
所有工作簿都保存在Sharepoint Library中,使用相同的命名约定(“2023 Training Matrix NOps”、“2023 Training Matrxi SOps”等)
可发布的版本需要保存在Sharepoint库的子文件夹中。
下面的代码是我能找到的最适合我的需求的代码:
实际结果
- 创建仅包含值和格式的工作簿副本。
- 将文件保存到与原始文件相同的位置。
- 从原始工作簿中删除公式。
- 要跑很长时间。
预期结果
1.将原始工作簿(称为“2023 Training Matrix NOps”)的副本保存到原始SharePoint文件夹的子文件夹中
1.将副本命名为“2023 Training Matrix NOps -保存Date”(例如,“2023 Training Matrix NOps - 20_06_2023”)
1.工作簿的副本应为:
- macro free(file type xlsx);
- 将所有公式转换为值;
- 保留所有格式;
- 删除全部为黄色的查找工作表(工作表名称为“ADMIN”、SF_Item_Extract_SF_Item_Status_EC_Report)。
务必将原始工作簿保存在原始位置,所有公式和工作表均保持完整。
Sub mcrSet_All_Values_and_Save_XLSX()
Dim w As Long
For w = 1 To Sheets.Count
Sheets(w).UsedRange = Sheets(w).UsedRange.Value
Next w
Application.DisplayAlerts = False
ThisWorkbook.SaveAs _
ThisWorkbook.Path & Chr(92) & _
Left(ThisWorkbook.Name, InStr(1, ThisWorkbook.Name, Chr(46)) - 1) & Format(Date, "dd-mm-yyyy"), _
xlOpenXMLWorkbook
End Sub
1条答案
按热度按时间iswrvxsc1#
我预计转换/重写所有单元格内容比循环遍历. UsedRange中包含公式的单元格需要更多的时间。我还没有做过任何性能测试,但希望这会更快
要删除黄色标记的选项卡,请在循环的开头添加以下内容:
由于在同一循环中修改单元格和删除引用数据,因此可能需要在执行过程中关闭计算。把这个放在开头:
最后: