標題:
[發問]
數字尾數調整問題
[打印本頁]
作者:
spermbank
時間:
2012-3-16 16:01
標題:
數字尾數調整問題
本帖最後由 spermbank 於 2012-3-16 16:02 編輯
大家好:
想請問一個設計巨集的問題:
我在test檔案中的工作表sheet1中的A區與B區
我要如何把這些數字用下列規則:
數字區間0-10 跳動+-0.01
數字區間10-50 跳動+-0.05
數字區間50-100 跳動+-0.1
數字區間100-500 跳動+-0.5
數字區間500-1000 跳動+-1
數字區間1000以上 跳動+-5
例如:
數字 6.7894 取 6.79 (只要數字大於6.78就進位取6.79)
數字 10.68 取10.7 (只要數字大於10.65就進位取10.7)
數字 56.92 取57 (只要數字大於56.9就進位取57)
數字 103.42 取103.5 (只要數字大於103就進位取103.5)
...等等
然後按下巨集就把運算後的規則數字送入C區和D區
不知道如何寫,請大大們幫忙一下,謝謝。
作者:
Hsieh
時間:
2012-3-16 22:56
回復
1#
spermbank
試試看
Sub nn()
For Each a In Range("A:B").SpecialCells(xlCellTypeConstants, xlNumbers)
b = Application.Lookup(a, Array(0, 11, 51, 101, 501, 1001), Array(0.01, 0.05, 0.1, 0.5, 1, 5))
a.Offset(, 3) = Application.Ceiling(a, b)
Next
End Sub
複製代碼
作者:
spermbank
時間:
2012-3-17 01:34
回復
2#
Hsieh
謝謝H大,程式跑來完全符合想法。
想在請問一下
若是我想改變一下規則,想利用捨去法,把多餘的刪除
例如:
數字 6.7894 取 6.78
數字 10.68 取10.6
數字 56.92 取56.9
數字 103.42 取103
程式要怎麼修改,謝謝。
作者:
Hsieh
時間:
2012-3-17 09:04
回復
3#
spermbank
試試看
Sub nn()
For Each a In Range("A:B").SpecialCells(xlCellTypeConstants, xlNumbers)
b = Application.Lookup(a, Array(0, 11, 51, 101, 501, 1001), Array(0.01, 0.05, 0.1, 0.5, 1, 5))
a.Offset(, 3) = Application.Ceiling(a, b)
a.Offset(, 5) = Application.RoundDown(Application.Floor(a, b / 10), 2) '無條件捨去
Next
End Sub
複製代碼
作者:
spermbank
時間:
2012-3-18 00:54
回復
4#
Hsieh
H大你好:
我利用
a.Offset(, 5) = Application.RoundDown(Application.Floor(a, b / 10), 2) '無條件捨去
跑出來的結果似乎不太對
例如:
12.33 還是12.33 沒辦法無條件捨去變成12.3
45.47 變成45.46 沒辦法無條件捨去變成45.45
15.27 變成15.26 沒有辦無條件捨去變成15.25
...等等
可不可請H大再幫我看看,謝謝。
作者:
Hsieh
時間:
2012-3-19 08:29
回復
5#
spermbank
Sub nn()
For Each a In Range("A:B").SpecialCells(xlCellTypeConstants, xlNumbers)
b = Application.Lookup(a, Array(0, 11, 51, 101, 501, 1001), Array(0.01, 0.05, 0.1, 0.5, 1, 5))
a.Offset(, 3) = Application.Ceiling(a, b)
a.Offset(, 5) = Application.Floor(a, b) '無條件捨去
Next
End Sub
複製代碼
作者:
spermbank
時間:
2012-3-19 15:22
回復
6#
Hsieh
感謝,謝謝H大幫忙。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)