私は約300001行20列の巨大なスプレッドシートを持っています。最初の列Aは、0.001刻みで0から3までの数字の繰り返しです(3001セル、合計100回の繰り返し)。列Aのエントリ3に対応するROWSを選択し、それらを転置して新しいシートに書き込みます。どうすればよいですか?マクロとVBAの完全な初心者ですが、私はプログラミング(主にC ++)に精通しています。
ありがとう!
このようなことをするのにマクロは本当に必要ありませんが、これもまた、実用的なことよりも楽しみのためにやっていることのように思えます。
範囲「A1:T300001」を列Aで高から低に並べ替えて、上位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
結果を転置したい場合。