Chuyển dữ liệu từ userform vào bảng tính bị định dạng text

Liên hệ QC

brachiosaurus

Thành viên mới
Tham gia
15/6/17
Bài viết
27
Được thích
4
Giới tính
Nữ
Chào tất cả mọi người, vấn đề của em như đã nói trên tiêu đề. Em có làm 1 userform hỗ trợ nhập liệu (xuất hiện khi ấn vào "tạo phiếu mới"). Trước khi e dùng office 2013 thì các định dạng từ userform chuyển sang bảng tính ổn định nhưng do office tự update giờ máy e đã là office 2019 thì bị hiện tượng tất cả dữ liệu từ userform chuyển ra điều định dạng text hết (dùng 1 thời gian thấy khá thích nên đừng bác nào gợi ý cho e cài lại office nhé). Với dữ liệu như vậy e ko thể làm báo cáo số liệu cũng như chạy ngày đc. Sau 1 hồi tìm kiếm trên google e đã tìm đc cách để giữ đc định dạng số nhưng còn định dạng ngày tháng thì ko thể khắc phục nổi. Dưới đây là file dữ liệu của e. Mong mọi người giúp đỡ ạ. Cảm ơn mọi người
 

File đính kèm

  • Khieu nai.xlsm
    1 MB · Đọc: 21
Chào tất cả mọi người, vấn đề của em như đã nói trên tiêu đề. Em có làm 1 userform hỗ trợ nhập liệu (xuất hiện khi ấn vào "tạo phiếu mới"). Trước khi e dùng office 2013 thì các định dạng từ userform chuyển sang bảng tính ổn định nhưng do office tự update giờ máy e đã là office 2019 thì bị hiện tượng tất cả dữ liệu từ userform chuyển ra điều định dạng text hết (dùng 1 thời gian thấy khá thích nên đừng bác nào gợi ý cho e cài lại office nhé). Với dữ liệu như vậy e ko thể làm báo cáo số liệu cũng như chạy ngày đc. Sau 1 hồi tìm kiếm trên google e đã tìm đc cách để giữ đc định dạng số nhưng còn định dạng ngày tháng thì ko thể khắc phục nổi. Dưới đây là file dữ liệu của e. Mong mọi người giúp đỡ ạ. Cảm ơn mọi người
Cái nào muốn nó dạng số thì thêm vào hàm Val() Ví dụ cột Q.
Mã:
.Range("Q" & EndRow) = Val(txtCamQuan)
 
Upvote 0
Bạn xem bảng kết quả này mình nhập & có thể tự rút ra kết luận:

2020-0023Ngày phân tíchNgười nhận/Lấy mẫuNgày sản xuất=month(Ngày FT)=Month(Ngày SX)
???13/02/2020Nguyễn Thị Yến1/29/2020#VALUE!1.00
AAAA15/03/2020Đặng Thị Nguyệt3/15/2020#VALUE!3.00
12544421/04/2020Đỗ Thị Hoa3/22/2020#VALUE!3.00
GPE28/02/2020Vương Quỳnh Hoa21/3/2020#VALUE!#VALUE!
GPE20/02/2020Đỗ Minh Phương29/2/20#VALUE!2.00

PHP:
Private Sub cmbOK_Click()
Dim EndRow As Long
EndRow = Sheets("Data").Range("A10000").End(xlUp).Row
With Sheets("Data")
    .Range("B" & EndRow) = txtNgayPT.Value
    .Range("C" & EndRow) = cbbKCS
    .Range("D" & EndRow) = cbbKetQua
    .Range("E" & EndRow) = txtNgaySX.Value
    Exit Sub
'. . . .  '
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn xem bảng kết quả này mình nhập & có thể tự rút ra kết luận:

2020-0023Ngày phân tíchNgười nhận/Lấy mẫuNgày sản xuất=month(Ngày FT)=Month(Ngày SX)
???13/02/2020Nguyễn Thị Yến1/29/2020#VALUE!1.00
AAAA15/03/2020Đặng Thị Nguyệt3/15/2020#VALUE!3.00
12544421/04/2020Đỗ Thị Hoa3/22/2020#VALUE!3.00
GPE28/02/2020Vương Quỳnh Hoa21/3/2020#VALUE!#VALUE!
GPE20/02/2020Đỗ Minh Phương29/2/20#VALUE!2.00

PHP:
Private Sub cmbOK_Click()
Dim EndRow As Long
EndRow = Sheets("Data").Range("A10000").End(xlUp).Row
With Sheets("Data")
    .Range("B" & EndRow) = txtNgayPT.Value
    .Range("C" & EndRow) = cbbKCS
    .Range("D" & EndRow) = cbbKetQua
    .Range("E" & EndRow) = txtNgaySX.Value
    Exit Sub
'. . . .  '
thêm vào .value như bác kết quả nó ra dãy số của ngày đó. VD như ngày 12/3/20 nó ra 44168 chứ không ra ngày. bác hướng dẫn cụ thể cho e với
 
Upvote 0
em đã thử lại, thì ô hiện ngày, ô hiện dãy số. tỷ lệ 50-50. e đã để định dạng ô là date nhưng vẫn ko đc. bác chỉ cụ thể hộ e nhé
 
Upvote 0
Vời các dữ liệu ngày-tháng-năm thì nên nhập & thử các ngày 4/13 hay 12/13 hay 13/10,. . .
Mình cũng chưa hiểu 2 TextBox bạn có nhốt ma 1 trong chúng hay không mà 2 TextBox này lại vận hành theo 2 hướng đối nghịch nhau.
Với mình thì trong Excel ta nên có dạng 'MM/DD/yyyy & ngày hệ thống cũng nên thiết lập như vậy.

Còn 1 hướng nữa bạn nên thử:
.Range("E" & EndRow) = Format(txtNgaySX.Value, "MM/DD/yyyy")
 
Lần chỉnh sửa cuối:
Upvote 0
Có vài vấn đề.

1. txtNgayPT và txtNgaySX hoạt động không như nhau.
Nhìn code thấy
Mã:
Private Sub txtNgayPT_AfterUpdate()
txtNgayPT = Format(txtNgayPT, "dd/mm/yyyy")
End Sub

Private Sub txtNgaySX_AfterUdate()
txtNgaySX = Format(txtNgaySX, "dd/mm/yyyy")
End Sub
Làm quái gì có sự kiện AfterUdate, nên sub thứ 2 không được thực hiện. Nó được coi như sub người dùng có tên là txtNgaySX_AfterUdate.

2. Nhiều người có thói quen rất xấu, nói mãi nhưng như nước đổ đầu vịt.
Làm quái gì có chuyện cứ bắt buộc định dạng ngày tháng theo 1 kiểu "dd/mm/yyyy". Nếu tôi là đối tác thì system của tôi sẽ dùng dạng yyyy-mm-dd (dạng năm tháng ngày). Bây giờ tôi nhận tập tin của đối tác B. Ngày này qua ngày khác, năm này qua năm khác, từ mấy chục năm nay tôi nhập mòn tay kiểu "yyyy-mm-dd", cả trên sheet và cả trên Form. Vậy thì theo thói quen tôi nhập 2020-06-12 (dạng năm tháng ngày). Code của ông B lập tức đổi thành 12-06-2020 (dạng ngày tháng năm). Bây giờ đập xuống sheet thì rõ ràng tôi sẽ có 2020-12-06. Rõ ràng tôi đã nhập ngày 12 tháng 6 chứ không nhập ngày 6 tháng 12.

Đề nghị:
- không Format gì cả, tức vứt vào sọt rác
Mã:
Private Sub txtNgayPT_AfterUpdate()
txtNgayPT = Format(txtNgayPT, "dd/mm/yyyy")
End Sub

Private Sub txtNgaySX_AfterUdate()
txtNgaySX = Format(txtNgaySX, "dd/mm/yyyy")
End Sub

- Hàng ngày nhập ngày tháng chuẩn trên sheet như thế nào thì cứ gõ trong TextBox đúng thứ tự như thế thôi.

- nhập xuống sheet
Mã:
.Range("B" & EndRow).Value = CDate(txtNgayPT.Value)
.Range("E" & EndRow).Value = CDate(txtNgaySX.Value)

Nói chung cứ viết .Value thôi. Thói quen xấu của người khác không hay ho gì để phải bắt chước. Cứ viết tường minh thôi.

3. Về định dạng trên sheet thì do hiện thời trên sheet đã có nhiều định dạng hổ lốn nên để test thì: chọn toàn bộ dòng 7 -> nhấn tổ hợp Ctrl + Shift + mũi tên xuống -> phải chuột trên vùng chọn và chọn Delete -> lưu lại tập tin. Từ lúc này hãy test.
 
Lần chỉnh sửa cuối:
Upvote 0
Có vài vấn đề.

1. txtNgayPT và txtNgaySX hoạt động không như nhau.
Nhìn code thấy
Mã:
Private Sub txtNgayPT_AfterUpdate()
txtNgayPT = Format(txtNgayPT, "dd/mm/yyyy")
End Sub

Private Sub txtNgaySX_AfterUdate()
txtNgaySX = Format(txtNgaySX, "dd/mm/yyyy")
End Sub
Làm quái gì có sự kiện AfterUdate, nên sub thứ 2 không được thực hiện. Nó được coi như sub người dùng có tên là txtNgaySX_AfterUdate.

2. Nhiều người có thói quen rất xấu, nói mãi nhưng như nước đổ đầu vịt.
Làm quái gì có chuyện cứ bắt buộc định dạng ngày tháng theo 1 kiểu "dd/mm/yyyy". Nếu tôi là đối tác thì system của tôi sẽ dùng dạng yyyy-mm-dd (dạng năm tháng ngày). Bây giờ tôi nhận tập tin của đối tác B. Ngày này qua ngày khác, năm này qua năm khác, từ mấy chục năm nay tôi nhập mòn tay kiểu "yyyy-mm-dd", cả trên sheet và cả trên Form. Vậy thì theo thói quen tôi nhập 2020-06-12 (dạng năm tháng ngày). Code của ông B lập tức đổi thành 12-06-2020 (dạng ngày tháng năm). Bây giờ đập xuống sheet thì rõ ràng tôi sẽ có 2020-12-06. Rõ ràng tôi đã nhập ngày 12 tháng 6 chứ không nhập ngày 6 tháng 12.

Đề nghị:
- không Format gì cả, tức vứt vào sọt rác
Mã:
Private Sub txtNgayPT_AfterUpdate()
txtNgayPT = Format(txtNgayPT, "dd/mm/yyyy")
End Sub

Private Sub txtNgaySX_AfterUdate()
txtNgaySX = Format(txtNgaySX, "dd/mm/yyyy")
End Sub

- Hàng ngày nhập ngày tháng chuẩn trên sheet như thế nào thì cứ gõ trong TextBox đúng thứ tự như thế thôi.

- nhập xuống sheet
Mã:
.Range("B" & EndRow).Value = txtNgayPT.Value
.Range("E" & EndRow).Value = txtNgaySX.Value
Nói chung cứ viết .Value thôi. Thói quen xấu của người khác không hay ho gì để phải bắt chước. Cứ viết tường minh thôi.

3. Về định dạng trên sheet thì do hiện thời trên sheet đã có nhiều định dạng hổ lốn nên để test thì: chọn toàn bộ dòng 7 -> nhấn tổ hợp Ctrl + Shift + mũi tên xuống -> phải chuột trên vùng chọn và chọn Delete -> lưu lại tập tin. Từ lúc này hãy test.
nếu như file này là e nhập thì e cũng ko phải khổ để phải định dạng từng ô như thế. nhưng ng nhập là ng còn ko thạo về máy tính ngoài việc gõ mổ cò từng chữ ra thì ko biết gì hết. e rất cảm ơn gợi ý của bác nhưng e ko thể bỏ đống format đấy ra đc. bác có thể chỉ cho e cách để format chúng nó hiệu quả và đơn giản hơn đc ko?
Vời các dữ liệu ngày-tháng-năm thì nên nhập & thử các ngày 4/13 hay 12/13 hay 13/10,. . .
Mình cũng chưa hiểu 2 TextBox bạn có nhốt ma 1 trong chúng hay không mà 2 TextBox này lại vận hành theo 2 hướng đối nghịch nhau.
Với mình thì trong Excel ta nên có dạng 'MM/DD/yyyy & ngày hệ thống cũng nên thiết lập như vậy.

Còn 1 hướng nữa bạn nên thử:
.Range("E" & EndRow) = Format(txtNgaySX.Value, "MM/DD/yyyy")
e đang thử và thấy cách này hiệu quả. cảm ơn bác nhiều, bên máy e định dạng 2 ô vẫn ra giống nhau là dd/mm/yyyy
 
Upvote 0
nếu như file này là e nhập thì e cũng ko phải khổ để phải định dạng từng ô như thế. nhưng ng nhập là ng còn ko thạo về máy tính ngoài việc gõ mổ cò từng chữ ra thì ko biết gì hết. e rất cảm ơn gợi ý của bác nhưng e ko thể bỏ đống format đấy ra đc. bác có thể chỉ cho e cách để format chúng nó hiệu quả và đơn giản hơn đc ko?
Nếu người nhập không thạo về máy tính thì làm sao họ biết cách nhập ngày tháng chuẩn nhỉ?

Mà thôi. Tôi chỉ chấp nhận 1 Format duy nhất. Đó là
Mã:
Private Sub txtNgayPT_AfterUpdate()
    txtNgayPT = Format(txtNgayPT, "Short Date")
End Sub

Private Sub txtNgaySX_AfterUpdate()
    txtNgaySX = Format(txtNgaySX, "Short Date")
End Sub

Về bài cuối tôi viết thiếu. Chính ra phải là
Mã:
.Range("B" & EndRow).Value = CDate(txtNgayPT.Value)
.Range("E" & EndRow).Value = CDate(txtNgaySX.Value)
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu người nhập không thạo về máy tính thì làm sao họ biết cách nhập ngày tháng chuẩn nhỉ?

Mà thôi. Tôi chỉ chấp nhận 1 Format duy nhất. Đó là
Mã:
Private Sub txtNgayPT_AfterUpdate()
    txtNgayPT = Format(txtNgayPT, "Short Date")
End Sub

Private Sub txtNgaySX_AfterUpdate()
    txtNgaySX = Format(txtNgaySX, "Short Date")
End Sub

Về bài cuối tôi viết thiếu. Chính ra phải là
Mã:
.Range("B" & EndRow).Value = CDate(txtNgayPT.Value)
.Range("E" & EndRow).Value = CDate(txtNgaySX.Value)
vì họ ko biết về định dạng ngày tháng chuẩn nên họ luôn luôn sử dụng định dạng ngày tháng giống như nói chuyện ngoài đời là dd/mm/yyyy đó bác. nhưng do có nhiều ng nhập nên có ng thích dấu "-", ng thích dấu "/", người lại thích dấu "." nên e mới phải cho nó hết về 1 định dạng.
E chưa có điều kiện để thử trên nhiều máy nên ko biết nếu e để định dạng short text thì có bị ảnh hưởng do định dạng ngày tháng của máy ko bác? và e sẽ để file trên dropbox và nhiều ng nhập trên nhiều máy khác nhau, nếu định dạng ngày tháng giữa các máy khác nhau thì dữ liệu đã nhập vào file có bị nhảy loạn lên ko ạ?
 
Upvote 0
vì họ ko biết về định dạng ngày tháng chuẩn nên họ luôn luôn sử dụng định dạng ngày tháng giống như nói chuyện ngoài đời là dd/mm/yyyy đó bác. nhưng do có nhiều ng nhập nên có ng thích dấu "-", ng thích dấu "/", người lại thích dấu "." nên e mới phải cho nó hết về 1 định dạng.
E chưa có điều kiện để thử trên nhiều máy nên ko biết nếu e để định dạng short text thì có bị ảnh hưởng do định dạng ngày tháng của máy ko bác? và e sẽ để file trên dropbox và nhiều ng nhập trên nhiều máy khác nhau, nếu định dạng ngày tháng giữa các máy khác nhau thì dữ liệu đã nhập vào file có bị nhảy loạn lên ko ạ?
Nếu bạn nói tới tình huống người nhập liệu không biết nhập liệu chuẩn, hoặc mỗi người tự cho phép mình nhập một kiểu thì tôi không bàn nữa. Làm việc nhóm là phải có qui định, thống nhất rõ ràng. Làm công ăn lương chứ không phải làm ơn. Không làm tốt thì đẩy sấp mặt ra đường. Thế thôi.
 
Upvote 0
bác thay cái textbox của txtngaysx, txtngaypt thành DTpicker hoặc Monthview là không lo nhập mỗi người một kiểu nữa
 
Upvote 0
Nếu bạn nói tới tình huống người nhập liệu không biết nhập liệu chuẩn, hoặc mỗi người tự cho phép mình nhập một kiểu thì tôi không bàn nữa. Làm việc nhóm là phải có qui định, thống nhất rõ ràng. Làm công ăn lương chứ không phải làm ơn. Không làm tốt thì đẩy sấp mặt ra đường. Thế thôi.
mình rất cảm ơn những góp ý về excel của bạn. nhưng mình cũng xin lỗi phải góp ý 1 chút, mỗi ng có 1 thế mạnh, họ ko rành về máy tính là vẫn bắt họ phải sử dụng có nghĩa chuyên môn của họ là những lĩnh vực khác. mình muốn dữ liệu phải có tức thời sau khi họ hoàn thành công việc chứ ko phải đợi chờ 1 đứa rành máy tính hơn họ đến nhập nên phải yêu cầu họ sử dụng. nếu đã đi làm thì ai cũng cố gắng. chả có ai chày bửa ra rồi ăn lương bạn à. đấy là chứ kể trong những ng đó có thể sẽ có những cô, chú đã lớn tuổi (hơn 40, 50 tuổi rồi) để họ có thể viết đúng định dạng thì mình phải nhắc rất nhiều lần do chả ai thay đổi thói quen mà dễ cả, và sau mỗi lần nhắc như thế mình lại phải can thiệp để sửa lại toàn bộ dữ liệu họ gõ sai (mặc dù chỉ sai những thứ rất nhỏ như dấu ngăn cách giữa ngày tháng hay 1.1 họ viết thành 1,1 nên máy tính ko nhận đc). đó là mục đích mình cố gắng làm ra 1 file nhập liệu dễ sử dụng và kiểm tra ngay khi nhập nhất để họ có thể nhập mà ít sai.
một lần nữa mình rất cảm ơn bạn, nhờ những gì bạn chỉ mà mình có thể hoàn thiện phần nào file nhập liệu cũng như học đc nhiều cái mới
Bài đã được tự động gộp:

bác thay cái textbox của txtngaysx, txtngaypt thành DTpicker hoặc Monthview là không lo nhập mỗi người một kiểu nữa
mình cảm ơn gợi ý của bạn nhưng có vẻ 2 control này ko có trong VBA. mình sẽ thử tìm hiểu và báo lại kết quả
 
Upvote 0
mình rất cảm ơn những góp ý về excel của bạn. nhưng mình cũng xin lỗi phải góp ý 1 chút, mỗi ng có 1 thế mạnh, họ ko rành về máy tính là vẫn bắt họ phải sử dụng có nghĩa chuyên môn của họ là những lĩnh vực khác. mình muốn dữ liệu phải có tức thời sau khi họ hoàn thành công việc chứ ko phải đợi chờ 1 đứa rành máy tính hơn họ đến nhập nên phải yêu cầu họ sử dụng. nếu đã đi làm thì ai cũng cố gắng. chả có ai chày bửa ra rồi ăn lương bạn à. đấy là chứ kể trong những ng đó có thể sẽ có những cô, chú đã lớn tuổi (hơn 40, 50 tuổi rồi) để họ có thể viết đúng định dạng thì mình phải nhắc rất nhiều lần do chả ai thay đổi thói quen mà dễ cả, và sau mỗi lần nhắc như thế mình lại phải can thiệp để sửa lại toàn bộ dữ liệu họ gõ sai (mặc dù chỉ sai những thứ rất nhỏ như dấu ngăn cách giữa ngày tháng hay 1.1 họ viết thành 1,1 nên máy tính ko nhận đc). đó là mục đích mình cố gắng làm ra 1 file nhập liệu dễ sử dụng và kiểm tra ngay khi nhập nhất để họ có thể nhập mà ít sai.
một lần nữa mình rất cảm ơn bạn, nhờ những gì bạn chỉ mà mình có thể hoàn thiện phần nào file nhập liệu cũng như học đc nhiều cái mới
Bài đã được tự động gộp:


mình cảm ơn gợi ý của bạn nhưng có vẻ 2 control này ko có trong VBA. mình sẽ thử tìm hiểu và báo lại kết quả
Thêm một cách nửa, bạn tham khảo file này của bác @huuthang_bd
 

File đính kèm

  • Textbox Input mask.xlsm
    25.6 KB · Đọc: 16
Upvote 0
mình rất cảm ơn những góp ý về excel của bạn. nhưng mình cũng xin lỗi phải góp ý 1 chút, mỗi ng có 1 thế mạnh, họ ko rành về máy tính là vẫn bắt họ phải sử dụng có nghĩa chuyên môn của họ là những lĩnh vực khác. mình muốn dữ liệu phải có tức thời sau khi họ hoàn thành công việc chứ ko phải đợi chờ 1 đứa rành máy tính hơn họ đến nhập nên phải yêu cầu họ sử dụng. nếu đã đi làm thì ai cũng cố gắng. chả có ai chày bửa ra rồi ăn lương bạn à. đấy là chứ kể trong những ng đó có thể sẽ có những cô, chú đã lớn tuổi (hơn 40, 50 tuổi rồi) để họ có thể viết đúng định dạng thì mình phải nhắc rất nhiều lần do chả ai thay đổi thói quen mà dễ cả, và sau mỗi lần nhắc như thế mình lại phải can thiệp để sửa lại toàn bộ dữ liệu họ gõ sai (mặc dù chỉ sai những thứ rất nhỏ như dấu ngăn cách giữa ngày tháng hay 1.1 họ viết thành 1,1 nên máy tính ko nhận đc). đó là mục đích mình cố gắng làm ra 1 file nhập liệu dễ sử dụng và kiểm tra ngay khi nhập nhất để họ có thể nhập mà ít sai.
một lần nữa mình rất cảm ơn bạn, nhờ những gì bạn chỉ mà mình có thể hoàn thiện phần nào file nhập liệu cũng như học đc nhiều cái mới
Bài đã được tự động gộp:


mình cảm ơn gợi ý của bạn nhưng có vẻ 2 control này ko có trong VBA. mình sẽ thử tìm hiểu và báo lại kết quả
Bạn viết nhiều làm gì? Tôi đã viết là tôi không bàn về các trường hợp như thế.
Hướng dẫn nhập liệu chuẩn, tức phải gõ ngày tháng năm theo thứ tự nào, và ký tự phân cách là gì, là chuyện cùng lắm là 5 phút. Viện cớ không biết máy tính, tuổi cao là không thuyết phục.
Thực ra thì vấn đề không phải là thiếu hiểu biết về máy tính, cao tuổi. Vấn đề nằm ở
có ng thích dấu "-", ng thích dấu "/", người lại thích dấu "."
Tức thói quen "làm bừa thế nào cũng được", "tôi thích thế nào thì tôi làm như thế". Làm công ăn lương mà cứ như là làm ơn.

Còn nếu bạn muốn đi theo hướng chọn từ lịch thì thiếu gì lịch, đâu cứ phải có DTpicker. Hỏi xin mọi người lịch thôi. Nhưng bạn chọn phương án "luôn đi sau người khác để sửa" nên tôi không tham gia nữa.
 
Lần chỉnh sửa cuối:
Upvote 0
vì họ ko biết về định dạng ngày tháng chuẩn nên họ luôn luôn sử dụng định dạng ngày tháng giống như nói chuyện ngoài đời là dd/mm/yyyy đó bác. nhưng do có nhiều ng nhập nên có ng thích dấu "-", ng thích dấu "/", người lại thích dấu "." nên e mới phải cho nó hết về 1 định dạng.. . .

(1) Đầu câu nên viết hoa để người khác thấy bạn có lòng tự trọng

(2) Khắc phục chuyện nhập lung tung dạng ngày tháng này có thể chỉ bằng cách duy nhất sau:
Nhập dữ liệu kiểu này bỡi ComboBox thay vì TextBox
(Người nhập chỉ có thể chọn 1 giá trị ngày tháng trong 1 danh sách nhất đinh)
Cụ thể sẽ còn phát sinh 1 số khó khăn cho bạn; Những khó khăn này ta bàn tiếp sau 24 giờ kể từ bài này đăng trên DĐ
 
Upvote 0
... có thể sẽ có những cô, chú đã lớn tuổi (hơn 40, 50 tuổi rồi) để họ có thể viết đúng định dạng thì mình phải nhắc rất nhiều lần do chả ai thay đổi thói quen mà dễ cả, và sau mỗi lần nhắc như thế mình lại phải can thiệp để sửa lại toàn bộ dữ liệu họ gõ sai (mặc dù chỉ sai những thứ rất nhỏ như dấu ngăn cách giữa ngày tháng hay 1.1 họ viết thành 1,1 nên máy tính ko nhận đc). đó là mục đích mình cố gắng làm ra 1 file nhập liệu dễ sử dụng và kiểm tra ngay khi nhập nhất để họ có thể nhập mà ít sai.

Khi viết ứng dụng người lập trình phải bẫy tất cả các lỗi nhập liệu trước khi cho ghi dữ liệu vào hệ thống để khỏi phải tốn code kiểm tra, chỉnh sửa lại mà chưa chắc đúng.
Do đó tại sao bạn không gợi ý ngay khi nhập liệu và không cho nhập nếu sai định dạng? Người dùng không biết gì, khi lần đầu tiên nhập liệu, Excel hiện thông báo bạn nhập sai kiểu ngày tháng, kiểu đúng là ../.../..... --> họ thấy và chỉnh sửa ngay cho các lần nhập liệu sau thôi chứ có gì mất thời gian hay phiền phức mà một người 50 tuổi không làm được.
Bạn tìm hiểu về Data Validation và nhờ tư vấn code để bẫy lỗi khi nhập liệu tốt hơn là code xử lý dữ liệu lỗi đã nhập.
Nếu muốn nhập liệu nhanh, tôi nghĩ bạn dùng Userform.

Screen Shot 2020-04-28 at 9.22.59 AM.png
 
Upvote 0
Vừa thử lắp DTPicker và Monthview, cứ chọn ngày nào có 1 số như 1/4 đến 9/4, lúc nhấn xác nhận thì nó cứ nhảy ra số 43834. chọn format cell chỉnh lại dd/mm/yyyy cũng không được
 
Upvote 0
Web KT

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

Back
Top Bottom