標題:
[發問]
迴圈
[打印本頁]
作者:
bowwow1975
時間:
2013-1-31 10:21
標題:
迴圈
請教各位大大~~
我現在有一個值要跟另一個值比較,
假設 A 值輸入之後,會產出 B 值~~~
但是最終結果 A 要相近於 B,也就是迴圈計算~~
但是我好像不能用
With Sheet8
If .Range("r21").Value < .Range("x21").Value Then
.Range("r21").Value + 1
End If
End With
複製代碼
那個加號好像不允許~~~那我還有其他方法嗎?
感謝大大們!
作者:
bowwow1975
時間:
2013-1-31 10:52
好像試出來了
With Sheet8
Do While .Range("r21") < .Range("x21")
.Range("r21") = .Range("r21") + 1
Loop
複製代碼
但是運算好慢~~~
作者:
freeffly
時間:
2013-1-31 11:26
回復
2#
bowwow1975
從代碼看改這樣會不會比較快
A<B+1 則為B-1 否則為A
跳過中間的慢慢+1
作者:
freeffly
時間:
2013-1-31 11:32
回復 bowwow1975
從代碼看改這樣會不會比較快
A
freeffly 發表於 2013-1-31 11:26
剛剛想了想這樣與你的答案有差距
不過從這各方向應該會很接近你要的
就是跳過慢慢+1的方式
現在正再撈系統資料等一下再幫你試
給你一個方向
B跟A的差距取整數直接加應該就比你迴圈快
作者:
freeffly
時間:
2013-1-31 11:50
回復
2#
bowwow1975
你要的結果是這樣嗎
這樣應該就不會很久
Sub EE()
If [r1] < [x1] Then
[r1] = [r1] + Application.RoundUp([x1] - [r1], 0)
End If
End Sub
複製代碼
作者:
bowwow1975
時間:
2013-1-31 14:35
回復
5#
freeffly
果然算很快,但是值超出太多了~~
一般一開始的時候 r1 =65000, x1 =100000
最後負迴授後兩者都會會平穩在 93300 左右!
但是你的方法 r1 超出了 100000,來到 11185,x1 則是 86295..........
雖然我不太懂你的程式,但我想可能需要改一些值微調~~~~
可是,我不會調................
作者:
bowwow1975
時間:
2013-1-31 14:45
回復
6#
bowwow1975
If .Range("r21") < .Range("x21") Then
.Range("r21") = .Range("r21") + Application.RoundUp((.Range("x21") - .Range("r21")) / 1.6538, 0)
End If
複製代碼
改為這樣就比較好了~~~~但是,除以 1.6538 的值就會有點 case by case!
作者:
stillfish00
時間:
2013-2-1 09:27
回復
6#
bowwow1975
你應該把你回授相關的式子列出來
就是r1 , x1 是怎麼到 93300 的
作者:
freeffly
時間:
2013-2-1 10:21
回復
6#
bowwow1975
我是依你一開始發問的去弄的
不過看你後面改的就不知道你要的是什麼了
同樣由A走到B
可以走直線是最好的
可以用跳一步就到更好
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)