【问题标题】:Overwrite filtered table with values用值覆盖过滤表
【发布时间】:2021-07-21 14:46:54
【问题描述】:

我试图用自己的值覆盖过滤表。使用此代码,我已经进行了过滤和复制,但在粘贴时出错,并显示此消息“PasteSpecial 范围类方法失败”。

ExpectedFeesTbl.Range.AutoFilter Field:=3, Criteria1:="F"
ExpectedFeesTbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
ExpectedFeesTbl.DataBodyRange.SpecialCells(xlCellTypeVisible).PasteSpecial xlPasteValues

然后我想做的是粘贴值。

【问题讨论】:

    标签: excel vba copy-paste


    【解决方案1】:

    这不起作用,因为您不能在非连续范围内粘贴。

    解决方案是遍历可见单元格的区域,并用每个区域中的值替换公式。

    Dim VisibleCells As Range
    Set VisibleCells = ExpectedFeesTbl.DataBodyRange.SpecialCells(xlCellTypeVisible)
    
    If Not VisibleCells Is Nothing Then
        Dim iArea As Range
        For Each iArea In VisibleCells.Areas  ' loop through all areas
            iArea.Cells.Value = iArea.Cells.Value  ' convert all formulas in each area into values
        Next iArea
    End If
    

    【讨论】:

    • @BigBen 没错,我改了。谢谢你的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多