0
我有一個大約300001行和20列的龐大電子表格。第一列A是以0.001爲步長從0到3的數字的重複(3001個單元,總共100次重複)。我想挑出對應於3列A條目的ROWS,將它們轉置並將它們寫入新的工作表。我該怎麼做呢?在宏和VBA總noob但我熟悉編程(主要是C++)。用於複製特定行的Excel宏
謝謝!
我有一個大約300001行和20列的龐大電子表格。第一列A是以0.001爲步長從0到3的數字的重複(3001個單元,總共100次重複)。我想挑出對應於3列A條目的ROWS,將它們轉置並將它們寫入新的工作表。我該怎麼做呢?在宏和VBA總noob但我熟悉編程(主要是C++)。用於複製特定行的Excel宏
謝謝!
你並不是真的需要宏來做這樣的事情 - 但是,這又似乎更像是你爲了娛樂而做的事情,而不是實際的事情。
您可以將列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
顯然,他們是通過選擇(因爲我記錄它的一部分)的一些效率損失,但你可以改變那些使用設定範圍 - 通常這應該給你一個想法。
編輯:
你會改變現場:
Transpose:=False
在上面的代碼:
Transpose:=True
,如果你想你的結果換位。
自動文件自動排序整行/我的意思是如果我有兩行(2.99,5,6)和(3.00,1,2)我會看到第二組數字完全向上移動或將看到列按(3.00,5,6)和(2.99,1,2)排序。我想保留這組數字的順序。 –
自動過濾與排序不同。它所做的只是過濾,它不會重新組織(實際上它所做的只是隱藏不符合條件的行)。因此,上述代碼中的命令Selection.AutoFilter會將您的數據恢復到正常狀態(到其初始狀態 - 它將取消隱藏所有先前隱藏的行)。所以你最初的訂購不會丟失。但無論如何,如果您的初始排序很重要,我會建議您有一個從1到300001的列 - 所以您可以對其進行排序並自由操作,而不必擔心會丟失對您而言很重要的任何排序。 – Stepan1010