Excel VBA質問箱 IV

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

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


39239 / 76732 ←次へ | 前へ→

【42608】Re:並び替えの件で・・・
回答  Kein  - 06/9/16(土) 12:47 -

引用なし
パスワード
   あー・・すいません。先に提示したコードでは、数値の並び替えは
出来ますが、並び替える前の文字列と単純に繋げてしまったため、
インチキな処理結果になってしまいました。
で、やはり便利なExcelのSort機能を使うことにして、以下のような
コードに変更します。今度は「いったん数値部分をデータの前に持ってくる」
だけです。それで並び替えはうまくいきますから、もう一度ループして
元のように"文字列+3桁の数値"に戻します。作業列を使わずにやるとすれば、
おそらく最もシンプルなコードになると思います。

Sub Test_MyDataSort2()
  Dim MyR As Range, C As Range
  Dim Lg As Integer
 
  Set MyR = Range("A1", Range("A65536").End(xlUp))
  For Each C In MyR
   Lg = Len(C.Value) - 3
   C.Value = Right(C.Value, 3) & Left(C.Value, Lg)
  Next
  MyR.Sort Key1:=MyR.Cells(1), Order1:=xlAscending, _
  Header:=xlGuess, Orientation:=xlSortColumns
  For Each C In MyR
   Lg = Len(C.Value) - 3
   C.Value = Right(C.Value, Lg) & Left(C.Value, 3)
  Next
  Set MyR = Nothing
End Sub

0 hits

【42581】並び替えの件で・・・ kouka 06/9/15(金) 16:00 質問
【42583】Re:並び替えの件で・・・ Kein 06/9/15(金) 16:57 回答
【42608】Re:並び替えの件で・・・ Kein 06/9/16(土) 12:47 回答
【42590】Re:並び替えの件で・・・ だるま 06/9/15(金) 20:19 回答
【42603】Re:並び替えの件で・・・ ichinose 06/9/16(土) 11:13 回答
【42607】Re:並び替えの件で・・・ Ned 06/9/16(土) 12:38 発言
【42629】Re:並び替えの件で・・・ Ned 06/9/16(土) 23:10 発言
【42675】Re:並び替えの件で・・・ kouka 06/9/19(火) 10:14 お礼

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