Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3048 / 13644 ツリー ←次へ | 前へ→

【64557】またお願いします ひかる 10/2/23(火) 18:37 質問[未読]
【64558】Re:またお願いします kei 10/2/23(火) 19:58 回答[未読]
【64559】Re:またお願いします ひかる 10/2/23(火) 20:41 質問[未読]
【64561】Re:またお願いします kei 10/2/23(火) 21:51 回答[未読]
【64562】Re:またお願いします ひかる 10/2/23(火) 22:01 お礼[未読]
【64564】Re:またお願いします ひかる 10/2/23(火) 22:36 質問[未読]
【64566】Re:またお願いします kei 10/2/24(水) 1:52 回答[未読]
【64567】Re:またお願いします ひかる 10/2/24(水) 6:43 お礼[未読]
【64595】Re:またお願いします ひかる 10/2/24(水) 20:23 お礼[未読]

【64557】またお願いします
質問  ひかる  - 10/2/23(火) 18:37 -

引用なし
パスワード
   並べ替えがうまくいきません。
よろしくお願いします。

  A  B  C   D   E ・・・・・
1 No 性別 年齢 氏名  ・・・・・・
2         文字
3 1  男  24 まこと  ・ ・ 
4 2       やまだ  ・・・・   
5 3  女  21 さとう  ・・ ・ 
6 4  男    にしだ  ・・・・

1行目に項目があり、データは3行目からです。D列の2行目にちょっと文字があり、データもところどころ空欄があります。key1をB列、key2をC列に並べ替えをしたいのですが、どうしてもD列の2行目の文字を含めて並べ替えをしてしまいます。3行目からのデータのみ並べ替えをする方法をお教えください。
range("A1").Sort Key1:=Range("B3"), _
         order1:xlDescending, _
         header:=xlNo
         Key1:=Range("C3"), _
         order1:xlDescending, _
         header:=xlNo
よろしくお願いします。

【64558】Re:またお願いします
回答  kei  - 10/2/23(火) 19:58 -

引用なし
パスワード
   ひかるさん、こんばんわ。。

最初に並び替える範囲を選択しとくと良いのでは?

  Range("A3:D6").Select
  Selection.Sort Key1:=Range("B3") _
  , order1:=xlDescending, Key2:=Range("C3") _
  , Order2:=xlDescending, Header:=xlGuess

【64559】Re:またお願いします
質問  ひかる  - 10/2/23(火) 20:41 -

引用なし
パスワード
   kei さん、お返事ありがとうございます。
範囲を選択することは理解できました。恥ずかしながら、私は、ほぼ初心者です。
説明不足でしたが、データは、行方向は随時増え、列は、今回はV列までですが、今後増える可能性があります。範囲は、この場合、Range("A3:("V65536").End(xlUp))まででよいのでしょうか。このコードは間違っていると思いますが。また、Headerは、Header:=xlNoではだめなのでしょうか。お教えいただけますか。
よろしくお願いします。

【64561】Re:またお願いします
回答  kei  - 10/2/23(火) 21:51 -

引用なし
パスワード
   ひかるさん、こんばんわ。。
私も初心者の域を出ていませんわよ^^

V列にデータがちゃんと入っているれば、

Range("A3", Range("V" & Rows.Count).End(xlUp)).Select
で良いと思います。

データのみの並び替えですので、
Header:=xlGuess

タイトル行が2行なので、データのみの並び替えが正解だと思います。

【64562】Re:またお願いします
お礼  ひかる  - 10/2/23(火) 22:01 -

引用なし
パスワード
   kei さん、親切なご説明ありがとうございます。
頑張って、少しでもkeiさんに追いつけるよう精進いたしたいと思います。
また、よろしくお願いします。
ありがとうございました。

【64564】Re:またお願いします
質問  ひかる  - 10/2/23(火) 22:36 -

引用なし
パスワード
   kei さん、たびたびすみません。
もう一点だけ、お教えください。
A列、B列、C列、D列には、確実にデータがどの行にも、あるのですが、列Eからはない場合があります。データが後日V列まで入る可能性はありますが、それもあるところとないところがあり、V列に全くない場合も想定されます。ただ、V列まで入る場合もあります。
こういった場合に確実にB列、C列をkeyに並べ替えはできますか。
お教えください。よろしくお願いします。

【64566】Re:またお願いします
回答  kei  - 10/2/24(水) 1:52 -

引用なし
パスワード
   もうおやすみでしょうね。。

A列にはデータがあるとのことで、
  Range("A3", Range("A" & Rows.Count).End(xlUp)).Resize(, 22).Select
               ↑                      ↑
         A〜DのどれでもOKです。        V列までのColumn数

さらにSelectを使用せずに・・

  Range("A3", Range("A" & Rows.Count).End(xlUp)).Resize(, 22).Sort _
  Key1:=Range("B3"), _
  order1:=xlDescending, Key2:=Range("C3"), _
  Order2:=xlDescending, Header:=xlGuess

のほうが良いかも。。

【64567】Re:またお願いします
お礼  ひかる  - 10/2/24(水) 6:43 -

引用なし
パスワード
   kei さん、遅くにご返信ありがとうございます。
一度、やらせていただきます。もう一度返信させていただきます。
ありがとうございました。

【64595】Re:またお願いします
お礼  ひかる  - 10/2/24(水) 20:23 -

引用なし
パスワード
   kei さんへ
ご回答ありがとうございました。keiさんので確実にできました。実は、以前にResizeが絡んだことをkanabunさんからご教示いただいたことがあったのですが、全く理解できていないようです。少し情けないです。
でも、めげずに精進いたします。ありがとうございました。
また今後ともご教示のほどよろしくお願いします。

3048 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free