当前位置: 首页 > 知识库问答 >
问题:

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

马梓
2023-03-14

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

共有1个答案

凌永逸
2023-03-14

在国王的观点,您可以简单地复制和粘贴整个工作表作为值。

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

如果有帮助请告诉我!

 类似资料: