首页 文章

Excel宏用于复制特定行

提问于
浏览
0

我有一个大约300001行和20列的巨大电子表格 . 第一列A是从0到3的数字的重复,步长为0.001(3001个单元,总共100次重复) . 我想挑选对应于A列3的ROWS,转置它们并将它们写入新的表格 . 我该怎么做呢?宏和VBA的总菜鸟,但我熟悉编程(主要是C) .

谢谢!

1 回答

  • 3

    你真的不需要宏来做这样的事情 - 但是这似乎更像是你为了娱乐而做的事情而不是任何实际的东西 .

    您可以按A列从高到低对范围“A1:T300001”进行排序,然后复制并粘贴前100行 .

    但是如果你想要一个执行此操作的宏,这应该适合你:

    Sub MacroAutofilterExample()
        ActiveSheet.Range("$A$1:$T$300001").AutoFilter Field:=1, Criteria1:="3.000"
    
        Range("A1:T300001").Select
        Selection.Copy
        Sheets(2).Select
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("A1").Select
    
        Sheets("Sheet1").Select
        Range("A1").Select
        Selection.AutoFilter
        Range("A1").Select
    
    End Sub
    

    显然,通过使用选择(因为我记录了它的一部分)它们会有一些效率损失,但你可以改变那些使用设定范围 - 通常这应该给你一个想法 .

    EDIT:

    你会改变字段:

    Transpose:=False
    

    在上面的代码中:

    Transpose:=True
    

    如果您希望转换结果 .

相关问题