vba将excel表中的数据,按从小到大排序,并计算他们之间的差的绝对值,按从小到大排列输出

1:排序,假设结果x1<x2<x3.....<xn
2:计算差的绝对值,abs(x1-x2),abs(x1-x3),abs(x1-x4)......abs(x1-xn),abs(x2-x3),abs(x2-x4),.....,abs(x2-xn),.....abs(xn-1-xn),0。
3:将2中的绝对值排序。

第1个回答  2014-05-29
Columns("A:A").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:A3600")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B2").Select
ActiveCell.FormulaR1C1 = "=RC[-1]-R[-1]C[-1]"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B3600")
Range("B2:B3600").Select
A列为数组,B列显示差追问

不是后一个-前一个,是互相做减法。
abs(x1-x2),abs(x1-x3),abs(x1-x4)......abs(x1-xn),abs(x2-x3),abs(x2-x4),.....,abs(x2-xn),.....abs(xn-1-xn),0
a列:数据源
b列:从小到大排列
c列:互相做减法的绝对值,这列的结果明显是有多少个排列,就有多少个结果
d列:排列c列的数据

追答

这个不会,太复杂了