Xin giúp đỡ về định dạng số textbox VBA

Liên hệ QC

Srosro

Thành viên mới
Tham gia
10/7/18
Bài viết
15
Được thích
9
Xin chào các bro.

Trong Userform VBA lúc nhập số tiền vào text box. em cần trong textbox ấy ngăn cách nghìn giúp em. sau đó chạy kết quả vào 1 ô trong file excel.
thì em có dùng code sau để ngăn cách nghìn
Private Sub txAmount_Change()
txAmount = Format(txAmount, “#,##0”)
End Sub

Vấn đề xảy ra là khi ở máy tính của em lập trình. em để ngăn cách nghìn là dấu (,)
Kết quả trả về đúng là số em cần.
giả sử em nhập 1000000
trong textbox hiển thị là 1,000,000
ô A1 trong excel hiện lên là 1000000
nhưng khi chuyển sang máy có định dạng nghìn ngăn cách bằng dấu (.) thì trong textbox hiện lên là 1.000.000
mà A1 lại chỉ hiện lên 1

em không muốn phải sửa ở thiết lập máy tính khác dấu (,) thành (.) vì còn liên quan đến công việc của máy đó.

Vậy muốn sửa code thì sửa thế nào ạ.

em cảm ơn
 
Xin chào các bro.

Trong Userform VBA lúc nhập số tiền vào text box. em cần trong textbox ấy ngăn cách nghìn giúp em. sau đó chạy kết quả vào 1 ô trong file excel.
thì em có dùng code sau để ngăn cách nghìn
Private Sub txAmount_Change()
txAmount = Format(txAmount, “#,##0”)
End Sub

Vấn đề xảy ra là khi ở máy tính của em lập trình. em để ngăn cách nghìn là dấu (,)
Kết quả trả về đúng là số em cần.
giả sử em nhập 1000000
trong textbox hiển thị là 1,000,000
ô A1 trong excel hiện lên là 1000000
nhưng khi chuyển sang máy có định dạng nghìn ngăn cách bằng dấu (.) thì trong textbox hiện lên là 1.000.000
mà A1 lại chỉ hiện lên 1

em không muốn phải sửa ở thiết lập máy tính khác dấu (,) thành (.) vì còn liên quan đến công việc của máy đó.

Vậy muốn sửa code thì sửa thế nào ạ.

em cảm ơn
Theo mình phân tích thì có 2 cách, mình kg ngồi máy tính, bạn tự thử xem nhé
1. Bạn ghi dữ liệu xuống ô excel là dạng text, khi cần tính toán bạn thêm công đoạn chuyển thành số trước khi tính.
2. Bạn dùng code kiểm tra hệ thống windows nếu sử dụng (,) thì bạn dùng định dạng dấu (,) còn ngược lại bạn xử lý ngược lại
 
Upvote 0
DecimalSeparator = Format(0, ".")
Hoặc:
DecimalSeparator = CreateObject("WScript.Shell").RegRead("HKCU\Control Panel\International\sDecimal")
 
Upvote 0
Web KT
Back
Top Bottom