VBA:将公式转换为具有260个工作表的文件的值

我需要将我的工作簿中的所有单元格从公式转换为值。 为此,我想使用下面看到的代码,但即使它适用于较小的文件,当我将它用于包含260个工作表的文件时,xlPasteValues也会出现“错误1004”。

Sub Formula_Zapper() Worksheets.Select Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues ActiveSheet.Select Application.CutCopyMode = False End Sub 

任何人都可以向我解释为什么它不适用于大文件,我怎么能解决这个问题?

我尝试通过select较less的工作表来解决这个问题,并进行多轮,但是我有问题,我不想做一个手动数组,我手动添加我想在这一轮中select的工作表。

我也尝试过使用For-Loop,然后select一个工作表,但是当我尝试这样做时,我的电脑崩溃了。 有没有办法让VBA同时select工作表1到50?

非常感谢您的帮助,我真的有点迷失在这里。

这是另一种不使用Range.Copy

 Sub ReplaceFormulaeWithValues() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim ws As Worksheet For Each ws In ThisWorkbook ws.UsedRange.Value = ws.UsedRange.Value Next Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub