[問題] VBA判斷儲存格中值的大小

看板Office作者時間9年前 (2017/03/02 11:55), 編輯推噓1(1020)
留言21則, 3人參與, 最新討論串1/1
(若是和其他不同軟體互動之問題 請記得一併填寫) 軟體:Excel 版本:2013 請教各位專家高手,這裡遇到的狀況是某資料區範圍A1:B100 (100 rows、2 columns) 當中每個儲存格是先用工作表函數Average在他處求得的平均值,之後用VBA分別比較 每一列A欄跟B欄的值的大小,但卻出現大部分結果判斷正確,只有某幾列會把A、B兩欄 相等的值判斷成"smaller"或"bigger",VBA判斷式如下,再請教各位了,謝謝。 For i = 1 to 100 If Cells(i, 1) > Cells(i, 2) Then Cells(i, 3) = "bigger" ElseIf Cells(i, 1) < Cells(i, 2) Then Cells(i, 3) = "smaller" Else Cells(i, 3) = "--" End If -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.194.224 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1488426953.A.297.html

03/02 12:13, , 1F
提供相等時判斷成"smaller"或"bigger"的檔案應會較清楚
03/02 12:13, 1F

03/02 12:59, , 2F
是不是average的時候沒有取round ?
03/02 12:59, 2F

03/02 14:41, , 3F
感謝兩位高手回答,我把簡檔連結貼上
03/02 14:41, 3F

03/02 14:41, , 4F

03/02 14:58, , 5F
可於巨集內配合round或worksheetfunction.round來排除
03/02 14:58, 5F

03/02 15:13, , 6F
另外vba內round為四捨六入五成雙的規則和
03/02 15:13, 6F

03/02 15:14, , 7F
worksheetfunction.round不同,再請留意
03/02 15:14, 7F

03/02 15:30, , 8F
03/02 15:30, 8F

03/02 16:08, , 9F
再次感謝高手!
03/02 16:08, 9F

03/02 16:49, , 10F
可否再請教高手,為何VBA在不加上round函數時會有本文所述
03/02 16:49, 10F

03/02 16:49, , 11F
情況,而且感覺是隨機發生,即使是比較兩個已被整除至小數點
03/02 16:49, 11F

03/02 16:49, , 12F
後數位的值,還是無法100%正確判斷大小
03/02 16:49, 12F

03/02 16:59, , 13F
有可能是浮點數的問題,如儲存格a46和b46的值並不相同
03/02 16:59, 13F

03/02 17:00, , 14F
03/02 17:00, 14F

03/02 17:03, , 15F
a49和b49上也是 https://i.imgur.com/h5wDu9p
03/02 17:03, 15F

03/02 17:05, , 16F
而儲存格a22和b22應相同https://i.imgur.com/UMERoNV 因此
03/02 17:05, 16F

03/02 17:05, , 17F
才回值字串--
03/02 17:05, 17F

03/02 17:19, , 18F
高手謝謝!
03/02 17:19, 18F

03/02 17:57, , 19F
https://i.imgur.com/9SWFPck 或以range.text,測試結果同
03/02 17:57, 19F

03/02 17:57, , 20F
Excel公式判斷
03/02 17:57, 20F

03/02 22:13, , 21F
感謝! x 10000
03/02 22:13, 21F
文章代碼(AID): #1OjvV9AN (Office)
文章代碼(AID): #1OjvV9AN (Office)