Excelmacros用于复制特定的行

我有一个大约300001行和20列的庞大的电子表格。 第一列A是以0.001为单位(3001个单元,共100次重复)的步数从0到3的数字的重复。 我想挑出对应于3的列A条目的ROWS,转置它们并将它们写入新的工作表。 我该怎么做呢? 在macros和VBA总noob但我熟悉编程(主要是C ++)。

谢谢!

你并不需要macros来做这样的事情 – 但是,这又似乎更像是你为了娱乐而做的事情,而不是实际的事情。

您可以将列A中的范围“A1:T300001”从高到低sorting,然后复制并粘贴上百行。

但是,如果你想要一个这样做的macros,这应该为你工作:

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 

显然他们是由于使用select(因为我logging了它的一部分)的一些效率损失,但你可以改变这些使用设置的范围 – 通常这应该给你一个想法。

编辑:

你会改变字段:

 Transpose:=False 

在上面的代码中:

 Transpose:=True 

如果你想要你的结果转置。