1
Excelの複数の列をC#で並べ替える必要があります。私はこれを行うためにMicrosoft.Office.Interop.Excelを使用しています。しかし、Range.Sortでは、3つの列だけを並べ替えることができます。私は3つ以上の列を並べ替えたいですか? Excel.Range.Sortメソッドを使用して3つ以上の列を並べ替える方法はありますか?C#を使用してExcelで複数の列を並べ替えるには
Excelの複数の列をC#で並べ替える必要があります。私はこれを行うためにMicrosoft.Office.Interop.Excelを使用しています。しかし、Range.Sortでは、3つの列だけを並べ替えることができます。私は3つ以上の列を並べ替えたいですか? Excel.Range.Sortメソッドを使用して3つ以上の列を並べ替える方法はありますか?C#を使用してExcelで複数の列を並べ替えるには
Excel 2007以前は、3つのソートキーに制限されていました。Range.Sort
は、これ以上使用できません。それが目標バージョンであれば、データをC#コードにプルしてソートするか、連結キーを含む余分なワークシートの列を作成してから通常通りSort
を適用するという2つの考え方が必要です。
Excel 2007以降を使用している場合は、より柔軟な並べ替え機能(Worksheet.Sort
)があります。 A1:J30
に30x10の乱数表を作成し、最初の5つの列をソートしたマクロを記録しました。これは私が(多少のコードを掃除し、デ複製後に)得たものである:
With ActiveWorkbook.Worksheets("Sheet1").Sort
With .SortFields
.Clear
.Add Key:=Range("A1:A30"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Add Key:=Range("B1:B30"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Add Key:=Range("C1:C30"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Add Key:=Range("D1:D30"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Add Key:=Range("E1:E30"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End With
.SetRange Range("A1:J30")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
...
おかげでマイク。私はそれを私のC#コードに適用することができました。それはうまくいった。 –