2011-08-01 7 views
0

VBAコードを使用して並べ替え操作を実行するにはどうすればよいですか?それを実行するために定義されたマクロ?VBAを使用した並べ替え操作?

私は値が入っている昇順で列Bをソートしなければなりません。それに日付が入っていて、最も古いものから最も新しいものまでのC列。

+2

乞食と自己非難をすべて忘れてください。私たちはすべて初心者です。質問に固執し、何を試してみましたか? –

+1

@niko:投稿する前に質問を2,3回読むことをお勧めします。数の文を半分にし、情報を可能な限り簡潔かつタイトに保つことを目指してください。これは、特に大部分の開発者の人格を考慮して、人々の寛大さに訴えをかけるよりはるかに優れています。 –

答えて

5

マクロレコーダーを使用することをお勧めします。 Excelに開発者用タブが表示されない場合は、Excelのオプションに移動します。このタブは[一般]タブにあります。クリックしてオンにしてください。

「レコードマクロ」を押してから、「列を強調表示してリボンをソートし、昇順でソートする」のようにしてから、「録音を停止」を押します。 VBA(Alt + F11)に移動し、結果のコードを参照して、同じ関数を記述する構文を学習します。あなたはすでにあなたがあなたのマクロを実行するとソートしたい列を選択しますので、あなたがこのような何かにコードをクリーンアップすることができ

Sub Macro1() 
    Columns("F:F").Select 
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear 
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("F1:F5"), _ 
     SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
    With ActiveWorkbook.Worksheets("Sheet1").Sort 
     .SetRange Range("F1:F5") 
     .Header = xlGuess 
     .MatchCase = False 
     .Orientation = xlTopToBottom 
     .SortMethod = xlPinYin 
     .Apply 
    End With 
End Sub 

:たとえば

は、並べ替えのようなものになります日付

トリックはあなたが目を選択する必要はありませんことを覚えておくことである:それは昇順ですので、日付が同じコードで行うことができますソート

Sub SortAscending() 
    With ActiveWorkbook.Worksheets("Sheet1").Sort 
     .Header = xlGuess 
     .MatchCase = False 
     .Orientation = xlTopToBottom 
     .SortMethod = xlPinYin 
     .Apply 
    End With 
End Sub 

既に選択しているコード内の範囲です。幸運にも、このレコーダーで楽しい時を過ごすと、本当にこのような場合に役立ちます。

また、Excel VBAに関する数多くの書籍がありますので、書籍店またはデジタルでお選びいただくことをおすすめします。そこにあるほとんどの本は、VBAの基礎、主要なキーワード、レコーダーを使用して、そして最終的には十分にあなた自身のコードを書くことができるように(レコーダーコードはほとんど最適化されていないか完璧ですが、いくつかのワークシート関数を実行するための構文(構文)です。

+0

あなたはようこそ、ニコ。私の答えがうまくいくなら、それを受け入れる答えの横の矢印を確認してください。 :) 2番目の質問については、私はドライブにファイルを指定してそれに答えるのに十分なことはしていないのではないかと心配しています。私はあなたのqを他のどこかで見たと思うので、ここの他のユーザーのひとりが最終的にそれを見てあなたを助けてくれることをうれしく思います。 – aevanko

+0

素敵なきれいな答え。 –