作者brainerd (布雷納德)
看板Visual_Basic
標題[VBA ] 請問關於排序以及累加的問題
時間Thu Jun 25 13:47:44 2009
小弟想在Excel撰寫一支VBA的程式
規則如下
《Excel資料庫》
Pi Di
Job1 23 40
Job2 25 74
Job3 15 70
Job4 14 60
Job5 21 90
《規則》
※ Di 小的優先排列
※ Pi 累加-- Pi累加的值沒有超過Di,則繼續排下一個
-- Pi累加的值超過Di,則優先拿掉最大的Pi(包含當前的Pi也要納入考慮)
拿掉後 LB +1
Pi累加的值減當前最大的Pi後,繼續排列
全部排完後,計算出 LB
《人腦賽電腦-試演算》
Job Pi Di
Job1 23 40
Job4 23+14=37 60
Job3 37+15=52 70
Job2 52+25=77 74 -> 此時Pi累加值已超過當前Di值,
-> 故拿掉最大的Pi,即Job2的Pi=25 (目前最大)
Job5 52+21=73 90
因為總共拿掉了1個Pi,故LB = 1
《目前遭遇問題》
小弟已經寫好排序的方法
但是不知道該如何進行下一步「累加」與計算「LB」
麻煩前輩們為我起個頭,指點一下,謝謝
Sub 按鈕1_Click()
Columns("C:C").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("C1"),
_
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A2:C99999")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.161.118.63
1F:推 qsss:排序完後, 跑 While 迴圈, 然後設定累加變數, 最大值變數 06/30 00:22
2F:→ qsss:LB (Count) 變數, 再依照你要的邏輯寫一下應該就可以了 06/30 00:23
3F:→ brainerd:感謝qsss大指點迷津,小弟有點頭緒了 ^^" 07/01 23:28