【问题标题】:How to transpose a filtered column of data in Excel Macro (VBA)如何在 Excel 宏 (VBA) 中转置过滤的数据列
【发布时间】:2014-08-14 09:15:49
【问题描述】:

我已经录制了一个宏来过滤一大列数据(以删除重复项),我想将其转置以创建一个矩阵以进行分析。出于某种原因,宏将记录“PasteSpecial”,但当我尝试执行它时给我一个“运行时错误 1004”。 我意识到 excel(03) 中只有 256 列,但目前的唯一值比这要少。运行时错误发生在 'selection.PasteSpecial...'

Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Application.CutCopyMode = False
    Range("C1:C574").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    Selection.Copy
    Range("D1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True

【问题讨论】:

    标签: excel vba filter transpose


    【解决方案1】:

    您不需要复制/粘贴特殊:

    Sub lexhtu8()
        Range("C1:C574").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        k = 4
        For i = 1 To 574
            If Cells(i, "C").EntireRow.Hidden = False Then
                Cells(1, k).Value = Cells(i, "C").Value
                k = k + 1
            End If
        Next i
    End Sub
    

    【讨论】:

    • 谢谢!我似乎找不到另一种转置方式,但您已经证明可以!
    • 感谢您的反馈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2015-08-28
    • 2017-04-04
    • 1970-01-01
    相关资源
    最近更新 更多