標題:
無條件捨去問題
[打印本頁]
作者:
warhead
時間:
2016-7-8 15:49
標題:
無條件捨去問題
請問我要將整頁的數值無條件捨去到小數兩位
With Temp.Range("C2")
.Value = Format(.Value, "0.00")
End With
可以執行,但是寫成以下就為失敗
With Temp.Range("C2:C10")
.Value = Format(.Value, "0.00")
End With
原因是出在哪邊呢?
作者:
jackyq
時間:
2016-7-8 18:35
Format 參數不能是陣列
作者:
Scott090
時間:
2016-7-9 07:25
回復
1#
warhead
format(.value,"0.00") 會四捨五入,不會無條件捨去
下列會得到 Range 區域 的 數值 格式 小數點以下2位
With Temp.Range("C2:C10")
. .NumberFormatLocal = "0.00"
End With
作者:
warhead
時間:
2016-7-10 08:36
我將他跟VLOOKUP一起使用就可以得到我要的結果了
With Temp.Range("C2:C10")
.Value = "=ROUNDDOWN(VLOOKUP(A3,Temp!A:T,3,0),2)
.NumberFormatLocal = "0.00"
End With
只是我單獨使用ROUNDDOWN 跟 FORMAT一樣不能使用在陣列,
但是ROUNDDOWN跟VLOOKUP一起使用卻可以?
作者:
PKKO
時間:
2016-7-10 12:09
回復
4#
warhead
資料量不大,或是不考慮執行速度可以用下列
Sub TEST()
For Each E In Range("A1:A2")
E.Value = Application.WorksheetFunction.Round(E.Value, 2)
Next
End Sub
複製代碼
考量速度,建議用陣列處理完畢之後再一次性輸出
作者:
Scott090
時間:
2016-7-11 07:45
回復
4#
warhead
這是不是你要的?
Dim c
For Each c In Temp.UsedRange
c.Value = IIf(c <> 0, Application.RoundDown(c, 2), "")
Next
作者:
ikboy
時間:
2016-7-11 15:42
如確實按無條件捨去處理, 不能用 round
Sub zz()
Dim a, c
a = [a1].CurrentRegion
For Each c In a
Debug.Print Int(c * 100) / 100
Next
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)