Hỏi cách làm tròn số trong VBA

Liên hệ QC

TrungChinhs

Thành viên tích cực
Tham gia
18/2/08
Bài viết
1,475
Được thích
2,469
Nghề nghiệp
Công chức
Chào các bạn!
Trong VBA để làm tròn số đến đơn vị nghìn đồng mình dùng hàm Round nhưng kết quả chỉ đúng với các số chỉ định làm tròn là số >= 0; với các số < 0 thì không cho kết quả (kết quả là 0). Cụ thể trong đoạn code sau:
Mã:
Dim Tong As Single
...
Cells(i,10).value = tong
với: Cells(i,10).value = round(tong, 0) thì kết quả đúng
với: [COLOR=red]Cells(i,10).value = round(tong, -3) thì kết quả không đúng[/COLOR]

Nhờ các bạn giải thích hộ sai ở đâu ?
Muốn làm tròn số đến nhìn đồng (vd: 3.456.789 -> 3.457.000) thì code viết như thế nào ?
Xin cảm ơn.
 
Trong VBA hình như (?) có 2 hàm round. Một thì không cho phép đối số thứ hai nhận giá trị âm.
Bác dùng thử:
Application.Round(số, quy tắc làm tròn)

Thân!
 
Upvote 0
Chào các bạn!
Trong VBA để làm tròn số đến đơn vị nghìn đồng mình dùng hàm Round nhưng kết quả chỉ đúng với các số chỉ định làm tròn là số >= 0; với các số < 0 thì không cho kết quả (kết quả là 0). Cụ thể trong đoạn code sau:
Mã:
Dim Tong As Single
...
Cells(i,10).value = tong
với: Cells(i,10).value = round(tong, 0) thì kết quả đúng
với: [COLOR=red]Cells(i,10).value = round(tong, -3) thì kết quả không đúng[/COLOR]
Nhờ các bạn giải thích hộ sai ở đâu ?
Muốn làm tròn số đến nhìn đồng (vd: 3.456.789 -> 3.457.000) thì code viết như thế nào ?
Xin cảm ơn.

Bạn có thể dùng code sau:
Cells(i,10).Value = Round(Tong/1000)*1000
Hoặc:
Cells(i,10).Value = Application.WorksheetFunction.Round(Tong, -3)
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi đang nghĩ đến hướng:
Liệu có khả thi không nếu tôi chia nó cho 1000 sau đó lại nhân lên 1000 ???
Khó khăn là không biết cái Tong của bạn là gì nên không test được
 
Upvote 0
Xài thử toán tử '\' xem sao?

Bạn thử đoạn mã sau:
Mã:
Const GPE As Integer = 97
Msgbox 987.65 * GPE \ 1000
 
Upvote 0
Cảm ơn ca_dafi Hoangvulan!
đúng là Cells(i,10).Value = Application.WorksheetFunction.Round(Tong, -3)
hoặc Cells(i,10).Value = Application.Round(Tong, -3)

còn Cells(i,10).Value = Round(Tong/1000)*1000 thì "nguyễn y vân"
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom