用值替换数据透视表以过滤和删除行

时间:2019-07-25 14:26:24

标签: excel vba pivot-table

我试图围绕来自数据透视表的一些数据构建电子表格,但是我无法过滤和删除行。

我为表尝试了.Value = .Value,但收到了错误消息

  

“我们无法对所选单元格进行此更改,因为它将影响数据透视表...”(运行时错误'1004')

    With ws
        FinalRow = .Cells(Cells.Rows.Count, "B").End(xlUp).Row
        With .Range("B1:C" & FinalRow)'Pivot table range
            .Value = .Value
        End With

        For iCntr = FinalRow To 1 Step -1
            If Rows(iCntr).Hidden Then
                Rows(iCntr).EntireRow.Delete
            End If
        Next iCntr
    End With
End With

1 个答案:

答案 0 :(得分:0)

我认为您不能.Value那样的范围。您需要删除数据透视表-可能是存储数据,清除范围,然后重新写入数据。

尝试一下:

Dim tmp As Variant
With ws
    FinalRow = .Cells(Cells.Rows.Count, "B").End(xlUp).Row
    With .Range("B1:C" & FinalRow) 'Pivot table range
        tmp = .Value
        .ClearContents
        .Value = tmp
    End With
End With

顺便说一句,如果您已在数据透视图中“隐藏”了项目,则它们将从表中删除,而实际上并未隐藏-因此,我怀疑以后无需删除它们。。