Xin hướng dẫn cách format number listbox

Liên hệ QC

ungthienhai

Thành viên mới
Tham gia
3/9/16
Bài viết
25
Được thích
2
Chào anh chị,

Listbox hiển thị số 100.010 ( một trăm mười nghìn) nhưng khi mình input vào lại sheet thì lại thành 100 , bị mất đi 010. Tức là " một trăm nghìn lại thành một trăm)

Mình dùng list box hiên thị rồi lại chỉnh sửa trên listbox đấy
 
Mình thấy trong diễn đàn có nhiều bài hỏi về ko hiện trên listbox, còn listbox mình hiện mà khi input vào lại mất đi nghìn mới khó chịu chứ :D
1656338886828.png
 
Upvote 0
Chỉ nói vo thì tự do độc thoại. Lẽ ra nê đính kèm file lên.
 
Lần chỉnh sửa cuối:
Upvote 0
Mình thấy trong diễn đàn có nhiều bài hỏi về ko hiện trên listbox, còn listbox mình hiện mà khi input vào lại mất đi nghìn mới khó chịu chứ :D
View attachment 277998
Bạn muốn hỏi hay chỉ muốn chia sẻ sự khó chịu?

Trả lời cho các bạn đọc bài này và có vấn đề tương tự.

Nếu trên sheet các số có dấu phẩy là dấu thập phân còn dấu chấm phân cách phần nghìn mà trong ListBox rõ ràng nhìn thấy có dấu chấm phân cách hàng nghìn nhưng khi đập xuống sheet lại "mất đi nghìn" thì các bạn có thể loại bỏ dấu chấm khi đập xuống sheet. Cột ở sheet định dạng có phân cách hàng nghìn thì khi đập 12345 (không có dấu chấm) thì tự Excel sẽ định dạng có phân cách hàng nghìn.

Replace trả về chuỗi nên ta dùng CDbl để "ép" về số.

Vd.
Mã:
Sheet1.Range("A1").Value = CDbl(Replace(ListBox1.List(i, 3), ".", ""))

Theo tôi tốt hơn nên dùng
Mã:
Sheet1.Range("A1").Value = CDbl(Replace(ListBox1.List(j, 3), Mid(Format(1234, "#,##0.00"), 2, 1), ""))
Lúc này bất cứ dấu phân cách hàng nghìn là dấu chấm hay dấu cách hay dấu gì thì cũng bị loại. Công thức đầu tiên chỉ loại dấu phân cách khi đó là dấu chấm.
 
Upvote 0
Bạn muốn hỏi hay chỉ muốn chia sẻ sự khó chịu?

Trả lời cho các bạn đọc bài này và có vấn đề tương tự.

Nếu trên sheet các số có dấu phẩy là dấu thập phân còn dấu chấm phân cách phần nghìn mà trong ListBox rõ ràng nhìn thấy có dấu chấm phân cách hàng nghìn nhưng khi đập xuống sheet lại "mất đi nghìn" thì các bạn có thể loại bỏ dấu chấm khi đập xuống sheet. Cột ở sheet định dạng có phân cách hàng nghìn thì khi đập 12345 (không có dấu chấm) thì tự Excel sẽ định dạng có phân cách hàng nghìn.

Replace trả về chuỗi nên ta dùng CDbl để "ép" về số.

Vd.
Mã:
Sheet1.Range("A1").Value = CDbl(Replace(ListBox1.List(i, 3), ".", ""))

Theo tôi tốt hơn nên dùng
Mã:
Sheet1.Range("A1").Value = CDbl(Replace(ListBox1.List(j, 3), Mid(Format(1234, "#,##0.00"), 2, 1), ""))
Lúc này bất cứ dấu phân cách hàng nghìn là dấu chấm hay dấu cách hay dấu gì thì cũng bị loại. Công thức đầu tiên chỉ loại dấu phân cách khi đó là dấu chấm.
Cảm ơn bác,

Nhưng nếu bỏ đi dấu phân cách trên listbox thì ko thể nhìn rõ được số nghìn với số triệu.
Có cách nào nhìn rõ số 100.000 trên listbox xong input vào sheet cũng hiện là 100.000 không bác?
 
Upvote 0
Cảm ơn bác,

Nhưng nếu bỏ đi dấu phân cách trên listbox thì ko thể nhìn rõ được số nghìn với số triệu.
Có cách nào nhìn rõ số 100.000 trên listbox xong input vào sheet cũng hiện là 100.000 không bác?
Qua bên đây nè bạn
 
Upvote 0
Qua bên đây nè bạn
Cảm ơn bạn, mình hiện cũng giống trường hợp của bạn và cũng rất mơ hồ.
Mình tìm đọc được đến cuối bài thì bị bế tắc như bạn, bạn có thể chia sẻ cho mình nhiều hơn không?
Bài đã được tự động gộp:

Cảm ơn bác,

Nhưng nếu bỏ đi dấu phân cách trên listbox thì ko thể nhìn rõ được số nghìn với số triệu.
Có cách nào nhìn rõ số 100.000 trên listbox xong input vào sheet cũng hiện là 100.000 không bác?
1656404463671.png
1656404520401.png
Chỗ input mình đã sửa lại và chỗ ListBox1_DblClick đã định dạng lại nhưng khi input vào vẫn mất phần nghìn.
Bác có thể chỉ giúp mình đã chưa đúng chỗ nào được không? Xin cảm ơn bác.
 
Upvote 0
Cảm ơn bác,

Nhưng nếu bỏ đi dấu phân cách trên listbox thì ko thể nhìn rõ được số nghìn với số triệu.
Có cách nào nhìn rõ số 100.000 trên listbox xong input vào sheet cũng hiện là 100.000 không bác?
Tôi nói bỏ dấu phân cách trong ListBox ở chỗ nào?
Bạn đọc tiếng Việt mà không hiểu à?
mà trong ListBox rõ ràng nhìn thấy có dấu chấm phân cách hàng nghìn nhưng khi đập xuống sheet lại "mất đi nghìn" thì các bạn có thể loại bỏ dấu chấm khi đập xuống sheet
Nhìn code của người ta bạn nghĩ là nó loại dấu phân cách khi ĐẬP từ ListBox xuống sheet hay trong quá trình ĐẬP dữ liệu vào ListBox?
 
Upvote 0
Tôi nói bỏ dấu phân cách trong ListBox ở chỗ nào?
Bạn đọc tiếng Việt mà không hiểu à?

Nhìn code của người ta bạn nghĩ là nó loại dấu phân cách khi ĐẬP từ ListBox xuống sheet hay trong quá trình ĐẬP dữ liệu vào ListBox?

1656405557208.png
Mình chèn code của bác như trong hình đính kèm phía trên và hình hiện tại là kết quả.
Bác có thể chỉ lại giúp mình hiện tại thao tác có vấn đề chỗ nào không?
 
Upvote 0
View attachment 278034
Mình chèn code của bác như trong hình đính kèm phía trên và hình hiện tại là kết quả.
Bác có thể chỉ lại giúp mình hiện tại thao tác có vấn đề chỗ nào không?
Không. Với tôi luôn phải mô tả kỹ từ lúc hiện Form thì thực hiện những thao tác nào, nhập gì ở đâu, gõ gì nhấn gì để có kết quả hoặc lỗi cần xem xét. Và rất tiếc, tôi không làm việc với ảnh.
 
Upvote 0
Chào anh chị,

Listbox hiển thị số 100.010 ( một trăm mười nghìn) nhưng khi mình input vào lại sheet thì lại thành 100 , bị mất đi 010. Tức là " một trăm nghìn lại thành một trăm)

Mình dùng list box hiên thị rồi lại chỉnh sửa trên listbox đấy
Vấn đề này mình cũng gặp khi bắt đầu học làm vba đầu năm 2023 như bạn, sau nhiều lần thử cách và học hỏi các bạn trên mạng mình thấy vấn đề ở đây không phải là code.
Khi mình thiết lập ngày giờ cho máy tính mình định dạng luôn phân cách số hàng nghìn dấu chấm "." theo kiểu Việt Nam thay cho dấu phẩy" ," của Mỹ để cho thuận tiện công việc.
khi làm userform nhập liệu ô Textbox "số tiền" mình cũng làm câu lệnh vd: TextBox8.Value = Format(TextBox8.Value, "#,##0") khi nhập vẫn thấy có dấu phân cách hàng nghìn khi nhập nhiều số 0.
Nhưng khi thực hiện lưu vào sheet vd: (nhập số 500.000) thấy ở sheet nó hiện có (500) mất 3 số 0 ở hàng nghìn . mình tìm hiểu trên mạng các bạn chỉ thay vì định dạng mặc định cho máy tính thì định dạng mặt định trong excel cũng được và mình làm thử theo cách này và đã làm được.
bước 1: vào file/options/advanced có phần editing option bạn tìm Use system separators đang được đánh dấu tick chọn.
bước 2: Bạn chỉ cần nhấn chọn bỏ dấu tick này đi , bạn có thể thay đổi ô dấu bên dưới. Ở ô Decimal separator, bạn hãy xóa dấu chấm đi và nhập dấu phẩy thay vào đó và ô Thousands separator làm ngược lại.Cuối cùng nhấn OK.
Nhờ cách này mà các số 0 sau hàng nghìn hiện ra trên bảng tính excel sau khi nhấn lưu dữ liệu trên userform.
Nếu bạn đã tìm ra cách rùi thì bỏ qua bài viết này của mình nhé, còn chưa thì hãy thử theo cách của mình xem nhé.
Cảm ơn!
 

File đính kèm

  • dinh dang phan cach hang nghin.jpg
    dinh dang phan cach hang nghin.jpg
    78.2 KB · Đọc: 5
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom