A = 最小订单号
B = 最大订单号
C = B - A
Max = 最大行号
For I = 1 To C
D = 0
For J = 1 To Max
If 订单号(J) = A And 运费(J) > D Then D = 运费(J)
Next
If D > 0 Then Debug.Print "订单号";A,"运费",D
A = A + 1
Next
--------------------编程问答--------------------
订单号是要循环的,是要根据价格循环的……
--------------------编程问答--------------------
不是这样的。和订单号无关的。我要算出来的只是订单号对应的最大的那个运费价格
--------------------编程问答--------------------
按照 (订单号 正序,运费价格 倒序) 排序
然后充第3行开始逐行处理,如果订单号和上一行相同,删除该行。
最后剩下的就是每个订单号和最大运费。
--------------------编程问答--------------------
For i = StartRow To Cells(Rows.count, StartCol).End(3).Row Step 1
If mysheet.Cells(i, StartCol).Value = mysheet.Cells(i + 1, StartCol).Value Then
For j = i To ******Step 1
If mysheet.Cells(i, CalculaterCol).Value <= mysheet.Cells(i + 1, CalculaterCol).Value Then
sum = sum + mysheet.Cells(i, CalculaterCol).Value
End If
Next j
End If
Next i
我这个循环写到这里。在 For j = i To ******Step 1这里不知道怎么循环了,几to几啊……高手求解~
--------------------编程问答--------------------
看来你没看懂
读订单号
当订单号为当前处理订单时
判断价格
如价格大于保存值
则记录新价格
Select 订单号, Max(运费价格) As MaxPrice From [Sheet1$] Group By 订单号
或
Select Max(运费价格) As MaxPrice From [Sheet1$] Where 订单号 = '1001'
--------------------编程问答--------------------
如果没有将订单号排过序的话
你这段就会出错
--------------------编程问答--------------------
谢谢能贴出自己的解决方法。
另:记着结帖。
--------------------编程问答--------------------
A = 1000 '最小订单号
B = 2000 '最大订单号
C = B - A
Max = Application.CountA(ActiveSheet.Range("A:A"))
For I = 1 To C
D = 0
For J = 1 To Max
If Sheet1.Cells(J, 1).Value = A And Sheet1.Cells(J, 2).Value > D Then D = Sheet1.Cells(J, 2).Value
Next
If D > 0 Then Debug.Print "订单号";A,"运费";D
A = A + 1
Next
--------------------编程问答--------------------
从最小订单号开始依次用冒泡法在整个表内轮询一次最大价格
--------------------编程问答--------------------
如果是我做,直接用个透视表就行了
--------------------编程问答--------------------
试试用Scripting.Dictionary
key为订单号;
value为价格;