0
Excelシートで列Aの値を並べ替えようとしています。 例:複数の10進数で列を並べ替える
1.2
2.1
3.1
1.1.1
1.2.3
私はそれを再配置しなければならないの並べ替え]ボタンをクリックしたとき。
1.2
1.1.1
1.2.3
2.1
3.1
私は、ソートのコードを書かれているが、我々は1ドット以上を追加するときにその整数は、それは文字列を持っている変換秀でるためのコードは、単一の小数値のソートありません。私が間違っている場所をお勧めしますか?
Private Sub Sort_Click()
Dim xlSortA As XlSortOrder
Dim LastRow As Long
With ActiveSheet
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
If (CInt(.Range("A2").Value) > CInt(.Range("A" & CStr(LastRow)))) Then
xlSortA = xlAscending
End If
.Range("A2:D10" & LastRow).Sort Key1:=.Range("A2:D10"), Order1:=xlSort, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
ActiveWorkbook.Save
End Sub
注:ソートに基づいて、残りの列も再配置する必要があります。
列をテキストにフォーマットします –
変数xlSortAの使用は表示されません。 – ExcelinEfendisi
@ Nathan_Savテキストソートは、** '1.10.1'の後に' 1.2.1' **をソートすることに注意してください。それは私たちが期待するものではないかもしれません。しかし、ソートアルゴリズムはExcelに組み込まれていないので、これを期待通りに得ることができます。だから、これは達成するのは簡単な仕事ではありません。 –