註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Excel程式區
» 數字尾數調整問題
返回列表
下一主題
上一主題
發帖
[發問]
數字尾數調整問題
spermbank
發短消息
加為好友
spermbank
當前離線
UID
6504
帖子
94
主題
28
精華
0
積分
145
金錢
145
點名
0
作業系統
windows
軟體版本
office 2007
閱讀權限
20
在線時間
85 小時
註冊時間
2011-9-22
最後登錄
2025-2-25
中學生
帖子
94
主題
28
精華
0
積分
145
點名
0
作業系統
windows
軟體版本
office 2007
閱讀權限
20
註冊時間
2011-9-22
最後登錄
2025-2-25
1
#
跳轉到
»
正序看帖
打印
字體大小:
t
T
發表於 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區
不知道如何寫,請大大們幫忙一下,謝謝。
test.rar
(8.84 KB)
下載次數:17
2012-3-16 15:59
樓主熱帖
網路CSV下載問題
更新下載速度、存取問題
檔案下載問題
下載問題
迴圈問題
開啟網頁的問題
多個巨集,自動化問題
更新螢幕問題
使用巨集更新網頁資料
合併數個工作簿部分儲存格資料至一工作簿中
收藏
分享
spermbank
發短消息
加為好友
spermbank
當前離線
UID
6504
帖子
94
主題
28
精華
0
積分
145
金錢
145
點名
0
作業系統
windows
軟體版本
office 2007
閱讀權限
20
在線時間
85 小時
註冊時間
2011-9-22
最後登錄
2025-2-25
中學生
帖子
94
主題
28
精華
0
積分
145
點名
0
作業系統
windows
軟體版本
office 2007
閱讀權限
20
註冊時間
2011-9-22
最後登錄
2025-2-25
7
#
發表於 2012-3-19 15:22
|
只看該作者
回復
6#
Hsieh
感謝,謝謝H大幫忙。
TOP
Hsieh
發短消息
加為好友
Hsieh
當前離線
UID
3
帖子
4901
主題
44
精華
24
積分
4916
金錢
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
在線時間
4204 小時
註冊時間
2010-4-30
最後登錄
2026-7-16
超級版主
帖子
4901
主題
44
精華
24
積分
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
註冊時間
2010-4-30
最後登錄
2026-7-16
6
#
發表於 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
複製代碼
學海無涯_不恥下問
TOP
spermbank
發短消息
加為好友
spermbank
當前離線
UID
6504
帖子
94
主題
28
精華
0
積分
145
金錢
145
點名
0
作業系統
windows
軟體版本
office 2007
閱讀權限
20
在線時間
85 小時
註冊時間
2011-9-22
最後登錄
2025-2-25
中學生
帖子
94
主題
28
精華
0
積分
145
點名
0
作業系統
windows
軟體版本
office 2007
閱讀權限
20
註冊時間
2011-9-22
最後登錄
2025-2-25
5
#
發表於 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大再幫我看看,謝謝。
TOP
Hsieh
發短消息
加為好友
Hsieh
當前離線
UID
3
帖子
4901
主題
44
精華
24
積分
4916
金錢
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
在線時間
4204 小時
註冊時間
2010-4-30
最後登錄
2026-7-16
超級版主
帖子
4901
主題
44
精華
24
積分
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
註冊時間
2010-4-30
最後登錄
2026-7-16
4
#
發表於 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
複製代碼
學海無涯_不恥下問
TOP
spermbank
發短消息
加為好友
spermbank
當前離線
UID
6504
帖子
94
主題
28
精華
0
積分
145
金錢
145
點名
0
作業系統
windows
軟體版本
office 2007
閱讀權限
20
在線時間
85 小時
註冊時間
2011-9-22
最後登錄
2025-2-25
中學生
帖子
94
主題
28
精華
0
積分
145
點名
0
作業系統
windows
軟體版本
office 2007
閱讀權限
20
註冊時間
2011-9-22
最後登錄
2025-2-25
3
#
發表於 2012-3-17 01:34
|
只看該作者
回復
2#
Hsieh
謝謝H大,程式跑來完全符合想法。
想在請問一下
若是我想改變一下規則,想利用捨去法,把多餘的刪除
例如:
數字 6.7894 取 6.78
數字 10.68 取10.6
數字 56.92 取56.9
數字 103.42 取103
程式要怎麼修改,謝謝。
TOP
Hsieh
發短消息
加為好友
Hsieh
當前離線
UID
3
帖子
4901
主題
44
精華
24
積分
4916
金錢
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
在線時間
4204 小時
註冊時間
2010-4-30
最後登錄
2026-7-16
超級版主
帖子
4901
主題
44
精華
24
積分
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
註冊時間
2010-4-30
最後登錄
2026-7-16
2
#
發表於 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
複製代碼
學海無涯_不恥下問
TOP
靜思自在 :
唯其尊重自己的人,才更勇於縮小自己。
返回列表
下一主題
上一主題
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 • 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲