gpt4 book ai didi

VBA-将每个工作表保存为Excel工作簿中的值

转载 作者:行者123 更新时间:2023-12-02 21:44:01 26 4
gpt4 key购买 nike

我正在尝试编写一个宏来循环遍历事件工作簿中的每个工作表,并将所有公式保存为值。为此,对于每张工作表,我首先遍历每个数据透视表,然后选择该表并复制并粘贴为值。然后我尝试使用 worksheet.activerange.value = .value 方法保存工作表中的其余单元格。

我在 wks.UsedRange.Value = wks.UsedRange.Value 行上收到 1004 运行时错误。

我有两个问题:

1) 如何修复运行时错误?

2)有没有办法让 .value = .value 与数据透视表一起使用?在以前的宏中,这从未适用于枢轴,因此我必须使用复制和粘贴,如下所示。

非常感谢您的帮助!

Sub LockWorkbook()

Dim pvt As PivotTable
Dim wks As Worksheet
Dim i As Integer
Dim n As Integer

n = 1

For Each wks In ActiveWorkbook.Worksheets
i = 1
For Each pvt In wks.PivotTables
wks.PivotTables(i).TableRange2.Select
With Selection
.Copy
.PasteSpecial xlValues
.PasteSpecial xlFormats
End With
i = i + 1
Next pvt

Set wks = ActiveWorkbook.Worksheets(n)
wks.UsedRange.Value = wks.UsedRange.Value
n = n + 1

Next wks

End Sub

最佳答案

就国王的观点而言,您只需将整个工作表复制并粘贴为值即可。

Sheets("Sheet1").cells.copy
Sheets("Sheet1").cells.PasteSpecial Paste:=xlPasteValues

如果您想将其放入一个简单的循环中以对所有页面执行此操作,则可以如下所示:

Sub Test1()

Dim WS_Count As Integer
Dim I As Integer


WS_Count = ActiveWorkbook.Worksheets.Count

For I = 1 To WS_Count

ActiveWorkbook.Worksheets(I).Cells.Copy
ActiveWorkbook.Worksheets(I).Cells.PasteSpecial Paste:=xlPasteValues

Next I

End Sub

如果有帮助,请告诉我!

关于VBA-将每个工作表保存为Excel工作簿中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32056260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com