Hàm tìm ký tự khoảng trắng khi nhập vào textbox.

Liên hệ QC

John Handsome

Thành viên mới
Tham gia
5/7/21
Bài viết
6
Được thích
0
Chào các bác, hiện tại em đang có một vấn đề đó là em muốn tìm ký tự khoảng trắng khi người dùng copy ô dữ liệu từ sheet vào ô đó thì nó sẽ tách biệt các giá trị khi nhập vào. Kiểu như hàm tìm kiếm khoảng trắng ở excel ấy. find(" ",textbox1.text,1). Mong mấy bác giúp đỡ ạ. Mình cảm ơn.
1625460647445.png
 
Thế file đâu bạn? Bạn nghĩ người giúp phải bỏ công tạo form để giúp bạn, trong khi bạn đã có form sẵn?
 
Upvote 0
Thế file đâu bạn? Bạn nghĩ người giúp phải bỏ công tạo form để giúp bạn, trong khi bạn đã có form sẵn?
Mình chỉ hỏi là cái keyword để tìm kiếm thôi. Ví dụ như là nó là function hay nó là find ở vba gì chẳng hạn. Vì mình search google bằng cả tiếng Anh mà không biết chính xác keyword để tìm kiếm. Chứ không phải là nhờ mọi người làm thay mình. Nó khác nhau mà...
 
Upvote 0
Mình chỉ hỏi là cái keyword để tìm kiếm thôi. Ví dụ như là nó là function hay nó là find ở vba gì chẳng hạn. Vì mình search google bằng cả tiếng Anh mà không biết chính xác keyword để tìm kiếm. Chứ không phải là nhờ mọi người làm thay mình. Nó khác nhau mà...

hàm Split() nhé.
 
Upvote 0
Chào các bác, hiện tại em đang có một vấn đề đó là em muốn tìm ký tự khoảng trắng khi người dùng copy ô dữ liệu từ sheet vào ô đó thì nó sẽ tách biệt các giá trị khi nhập vào. Kiểu như hàm tìm kiếm khoảng trắng ở excel ấy. find(" ",textbox1.text,1). Mong mấy bác giúp đỡ ạ. Mình cảm ơn.
View attachment 261865
Bạn dùng hàm Instr để kiểm tra dấu trắng, nếu có thì dùng split để tách và điền vào các ô khác.
 
Upvote 0
Chắc đại loại vầy
PHP:
If Instr(textbox1.value, " ") >0 Then Arr = Split (textbox1.value, " " )
 
Upvote 0
1625464259527.png
Mình chỉ hỏi là cái keyword để tìm kiếm thôi. Ví dụ như là nó là function hay nó là find ở vba gì chẳng hạn.
Người ta hỏi file là vì vấn đề của bạn hơi lạ. Ai lại đi copy một nhóm ô rồi lại tách chúng ra. Nếu có đủ dữ liệu và thông tin, người ta có thể giúp bạn cách hữu liệu và thiết thực hơn.
Chỉ khăng khăng tìm cái keywords là tính cố chấp, không sẵn sàng tiếp nhận giải pháp khác với cái có sẵn trong đầu óc mình.

Bạn dùng hàm Instr để kiểm tra dấu trắng, nếu có thì dùng split để tách và điền vào các ô khác.
Thớt chủ quan cho nên mới có ý định tìm khoảng trắng. Nếu biết dùng hàm Split thì đâu có lý do gì phải kiểm tra dấu trắng.
Giải pháp đầy đủ phải cần Application.Trim giá trị trước khi split để tránh nó bị tách ra nhiều hơn số cột.
 
Upvote 0
Người ta hỏi file là vì vấn đề của bạn hơi lạ. Ai lại đi copy một nhóm ô rồi lại tách chúng ra. Nếu có đủ dữ liệu và thông tin, người ta có thể giúp bạn cách hữu liệu và thiết thực hơn.
Chỉ khăng khăng tìm cái keywords là tính cố chấp, không sẵn sàng tiếp nhận giải pháp khác với cái có sẵn trong đầu óc mình.


Thớt chủ quan cho nên mới có ý định tìm khoảng trắng. Nếu biết dùng hàm Split thì đâu có lý do gì phải kiểm tra dấu trắng.
Giải pháp đầy đủ phải cần Application.Trim giá trị trước khi split để tránh nó bị tách ra nhiều hơn số cột.
Cảm ơn mấy bác mình làm được rồi. 1625478026936.png1625477972604.png1625478090366.png
 
Upvote 0
Upvote 0
Hàm Split gọn hơn biết bao nhiêu mà không xài.

Mã:
Dim arrMaHang as Variant

arrMaHang = Split(Trim(Textbox2.Text)," ")
Combo1.Value = arrMaHang(0)
Combo2.Value = arrMaHang(1)
Combo3.Value = arrMaHang(2)
Gọn hơn, nhưng bạn hơi giản dị hoá nó một chút.
Đầy đủ thì phải tự xét lại điều kiện của mình.
Hàm VBA.Trim chỉ làm việc với khoảng trắng bên ngoài chuỗi.
Hàm Application.Trim làm việc cả với khoảng trắng bên trong chuỗi.
Điều kiện muốn ở đây là gì? Những ô trống thì bỏ qua hay chép thành trống?

Chú: nếu code viết thẳng Combo3... như vậy thì tôi cộng thêm 3 khoảng trắng vào cuối chuỗi trước khi split. Bảo đảm khong bị "subscript out of range"
 
Upvote 0
Bảo đảm khong bị "subscript out of range"
Em viết code giả đơn giản để bạn này thấy được cách dùng của hàm Split() chứ chưa xét tới nhiều yếu tố thực tế của Userform.
À giờ mới biết. Hàm Split trong trường hợp này không phải dùng khoảng trắng (" ") mà Split theo vbTab. Khi copy từ từ nhóm các cột Excel dán vô Textbox, nó phân cách bằng vbTab.

arrMaHang = Split(Trim(Textbox2.Text),vbTab)
 
Upvote 0
...À giờ mới biết. Hàm Split trong trường hợp này không phải dùng khoảng trắng (" ") mà Split theo vbTab. Khi copy từ từ nhóm các cột Excel dán vô Textbox, nó phân cách bằng vbTab.
Tôi cũng nghĩ Excel dùng cách cột bằng Tab's
Nhưng mà như bạn ở bài #2 nói, chả có cái phay cái phôm để thử cho nên tôi cứ theo mọi người mà nói mò thôi.

Mà quý vị quen dùng phôm thì biết phôm nó có kích hoạt sự kiện Change khi ta paste vào control hôn? Tôi cứ ngỡ phải gõ nó mới kích hoạt :wacko:
 
Upvote 0
Hi all, Mình muốn thay khoản trắng giữa các chữ trong Họ và tên, thay bằng"--", và bỏ dấu như sau:
Nguyễn Văn A, Cho kết quả là: Nguyen--Van--A; mình dùng hàm: left, right, mid kết hợp search, nhưng đối với họ và tên trên 4 chữ: Nguyễn Văn Quốc A thì bó tay, và chưa bỏ được dấu;
các bạn hỗ trợ giúp nhé. Cảm ơn!
 
Upvote 0
Hi all, Mình muốn thay khoản trắng giữa các chữ trong Họ và tên, thay bằng"--", và bỏ dấu như sau:
Nguyễn Văn A, Cho kết quả là: Nguyen--Van--A; mình dùng hàm: left, right, mid kết hợp search, nhưng đối với họ và tên trên 4 chữ: Nguyễn Văn Quốc A thì bó tay,
Dùng hàm VBA Replace

và chưa bỏ được dấu;

Cái này phải tự viết code thôi.
 
Upvote 0
Web KT

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

Back
Top Bottom