標題:
[發問]
VBA 當餘數=0,底色標示位址產生BUG之修正。
[打印本頁]
作者:
Airman
時間:
2015-11-5 16:41
標題:
VBA 當餘數=0,底色標示位址產生BUG之修正。
參考附件︰
http://www.FunP.Net/485107
R5=基準值; R6=計算最終期; T5=計算基準期數; T3=R6-T5
R7=T5的計算對應期; Q5=R7+T3; Q6=T5-R7
說明︰
For k = 0 To Int([T5] / [Q6]) '列26
當其計算=Q6的間距之個數取整數而
有
餘數時~
其各k點底色標示位址完全正確。
EX︰Sheet1
當其計算=Q6的間距之個數取整數而
無
餘數時~
其最後k點的底色標示依程式是會落在第6列(標題列)。
EX︰Sheet2
因為如以個人的循環想法而論~
順向(往下)計算時,R6期數=最終期
逆向(往上)計算時,R6期數=最終期=最初期(即視同0期)~
所以希望最後k點的底色標示會落在=第R6+6列。
EX︰Sheet3
PS︰W3︰Z6為提供解題者重新測試時~複製貼上Q3用(可不用理會)
需求
請問︰
應該如何修正程式語法?
以上 懇請各位前輩、先進不吝賜教! 謝謝!
作者:
准提部林
時間:
2015-11-5 20:21
本帖最後由 准提部林 於 2015-11-5 20:23 編輯
For k = 0 To Int([T5] / [Q6])
→ For k = 0 To Int(20 / 10) →只跑0,1,2,跑不了到100期??
是不是這樣?
For k = [T5] To [R6] Step [Q6]
'20∼100,以10為間隔
Cells(k + 6, j).Interior.ColorIndex = 4
Cells(k + 6, j - 8).Interior.ColorIndex = 43
Next
其它的看得眼都花了,改不了∼∼
作者:
Airman
時間:
2015-11-5 21:56
本帖最後由 Airman 於 2015-11-5 21:59 編輯
回復
2#
准提部林
准大:
問題點就只在您更改的26,27,28這一段程式碼
但以For k = [T5] To [R6] Step [Q6]
它是20,30,40....100 即從T5往下跑到R6
小弟需要的是20,10,0 即從T5往上跑到0,但0要視同為R6~即底色要標示在R6
請試想~如果期數以
循環
來看~
EX:R6=100
1->2->3->.....98->99->100->1->2->3->.....98->99->100-> .........
有想以:
IF [T5] Mod [Q6]餘數=0 Then 標示期數+R6
來解決,但小弟想了半天,不知如何和 " k " 產生連結?
實在寫不出來^^"
敬請您繼續指導~感恩^^
作者:
Airman
時間:
2015-11-5 22:26
更新(簡化)附件:
http://www.FunP.Net/137940
已將不需要的程式碼移除。
請問:
列14~列17的程式碼應如何修改?
才能符合需求。謝謝!
作者:
准提部林
時間:
2015-11-6 10:03
回復
4#
Airman
For k = 0 To Int([T5] / [Q6])
uRow = [T5] + 6 - [Q6] * k
If uRow <= 6 Then uRow = [R6] + 6 '
就將此視為〔例外〕處理
Cells(uRow, j).Interior.ColorIndex = 4
Cells(uRow, j - 8).Interior.ColorIndex = 43
Next k
作者:
Airman
時間:
2015-11-6 10:47
回復
5#
准提部林
准大:
測試OK了~又學到一個語法。
謝謝您的耐心協助~感恩
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)