[VBA ] 請問關於排序以及累加的問題

看板Visual_Basic作者 (布雷納德)時間16年前 (2009/06/25 13:47), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
小弟想在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

06/30 00:22, , 1F
排序完後, 跑 While 迴圈, 然後設定累加變數, 最大值變數
06/30 00:22, 1F

06/30 00:23, , 2F
LB (Count) 變數, 再依照你要的邏輯寫一下應該就可以了
06/30 00:23, 2F

07/01 23:28, , 3F
感謝qsss大指點迷津,小弟有點頭緒了 ^^"
07/01 23:28, 3F
文章代碼(AID): #1AGm-3so (Visual_Basic)