Khắc phục [QR-Code] sai do bộ gõ tiếng Việt ?

Liên hệ QC

Hoàng Nhật Phương

Thành viên gắn bó
Tham gia
5/11/15
Bài viết
1,894
Được thích
1,213
Xin chào các bạn.
Có thể sử dụng code để điều khiển ứng dụng Unikey được không ạ?
Ví dụ: Unikey đang ở chế độ gõ tiếng Việt, sau khi chạy code chuyển sang chế độ gõ tiếng Anh. Hoặc Unikey đang mở thì đóng lại ạ.
**********************************
Bài viết của tôi đã được giải quyết,hiện tôi đã đưa vào áp dụng kết quả đã OK đối với tôi.

Trong chủ đề có nhiều hướng giải quyết, nhưng tôi xin phép được trích dẫn link các bài viết tiêu biểu trong chủ đề để các bạn tiện theo dõi:
1.https://www.giaiphapexcel.com/diendan/threads/khắc-phục-qr-code-sai-do-bộ-gõ-tiếng-việt.140358/#post-902152
2.https://www.giaiphapexcel.com/diendan/threads/khắc-phục-qr-code-sai-do-bộ-gõ-tiếng-việt.140358/page-3#post-902364
3.https://www.giaiphapexcel.com/diendan/threads/khắc-phục-qr-code-sai-do-bộ-gõ-tiếng-việt.140358/page-7#post-902900

Xin trân trọng cảm ơn tất cả mọi người đã nhiệt tình giúp đỡ và đóng góp ý kiến, đặc biệt với sự giúp đỡ tận tình của các thành viên: Bác @batman1 (@siwtom ) , Anh @huuthang_bd , Anh @Nguyễn Duy Tuân và Bạn @HeSanbi

Xin trân trọng cảm ơn BQT đã tạo ra và đã mang đến cho tôi và mọi người một nơi thật tuyệt vời, một nơi để mọi người cùng nhau có thể trao đổi/học hỏi và cùng nhau thành công trong sự nghiệp.
 
Lần chỉnh sửa cuối:
Công nhân batman1 luôn luôn viết tiếng Việt bằng bàn phím của Windows. Vậy tôi đề nghị xử lý thêm trường hợp của công nhân batman1. Hoặc xử lý ngay công nhân batman1. Đợt nào có giảm biên chế thì cho nghỉ luôn chẳng hạn :D

Đã xét thì xét tới cùng nhỉ.
 
Lần chỉnh sửa cuối:
Upvote 0
Công nhân batman1 luôn luôn viết tiếng Việt bằng bàn phím của Windows. Vậy tôi đề nghị xử lý thêm trường hợp của công nhân batman1. Hoặc xử lý ngay công nhân batman1. Đợt nào có giảm biên chế thì cho nghỉ luôn chẳng hạn :D

Đã xét thì xét tới cùng nhỉ.
Những gì mặc định trên Window thì có thể dùng Win API , Command Line, Shell,... Nếu sử dụng Python thì bỏ ít công sức để viết Code hơn.
 
Upvote 0
Những gì mặc định trên Window thì có thể dùng Win API , Command Line, Shell,... Nếu sử dụng Python thì bỏ ít công sức để viết Code hơn.

Căn cứ ở đâu trong trường hợp này lại ít công sức khi dùng Python bạn nhỉ? Theo hiểu biết của mình Python chỉ là ngôn ngữ lập trình, mọi logic, giải thuật là do người lập trình., ngôn ngữ lập trình chỉ là diễn tả lại mà thôi. Mà thực sự mình chưa thấy cái ví dụ nào Python thuyết phục hơn VBA ? Bạn có thể cho vài link dẫn chứng đc không?
 
Upvote 0
Những gì mặc định trên Window thì có thể dùng Win API , Command Line, Shell,... Nếu sử dụng Python thì bỏ ít công sức để viết Code hơn.
Bạn nói là dùng Windows API thì làm được tuốt thì tôi cũng phải đồng ý thôi. Ai cũng nói được điều hiển nhiên đó, cả những người chưa từng lập trình Windows API. Vấn đề là làm thế nào. Thế thôi.

Bạn có thể bật mí, cho một code Python cụ thể dùng để chuyển bàn phím trong system không? Vd. trong máy tôi luôn có 3 bàn phím. Mặc định là bàn phím Ba Lan. Những khi tôi cần viết bài lên GPE thì tôi chọn bàn phím Vietnamese. Khi cần thì tôi lại chọn bàn phím Anh. Bạn viết trong Python thế nào để nhập bàn phím vietnamese cho tôi bất luận bàn phím hiện hành thế nào?
 
Upvote 0
Căn cứ ở đâu trong trường hợp này lại ít công sức khi dùng Python bạn nhỉ? Theo hiểu biết của mình Python chỉ là ngôn ngữ lập trình, mọi logic, giải thuật là do người lập trình., ngôn ngữ lập trình chỉ là diễn tả lại mà thôi. Mà thực sự mình chưa thấy cái ví dụ nào Python thuyết phục hơn VBA ? Bạn có thể cho vài link dẫn chứng đc không?
Lý do em nói vậy là vì thế mạnh của Python. Các gói ứng dụng tác vụ xử lý Windows được cộng đồng viết sẵn, mã nguồn đa số mã nguồn mở. Mình có thể sử dụng các gói sẵn có đó + vấn đề mình cần. Mình không phải bỏ công viết lại cả một ứng dụng.
Riêng Python cơ bản cũng đủ thấy sự tiện dụng của nó.

Một vài ví dụ:
1.
Để tách một chuỗi "Giải Pháp Excel":
Python: Chuoi = List("Giải Pháp Excel")
VBA: phải viết một vòng lặp duyệt qua từng ký tự chuỗi
2. Để biết "Excel" có trong Array("Giải", "Pháp", "Excel"):
Python: HasChuoi = "Excel" In ["Giải", "Pháp", "Excel"]
VBA
: phải viết một vòng lặp duyệt qua mảng
3. Python có thể gán trực tiếp vòng lặp:
ArrayChuoi = [x*2 for x in Range(10)]
4. Có thể lấy ra phần tử của chuỗi và mảng nhanh chóng:
ArrayChuoi2 = ArrayChuoi[2 : 6]
và đảo nhanh chóng:
ArrayChuoi3 = ArrayChuoi[6 : 2 : -1]
VBA thì phải viết lại.
5. Python có thể gán trực tiếp một tham số truyền vào:
Math = lambda x: x**2 + 2*x - 5
6. VBA phải viết cả ứng dụng để xử lý dữ liệu Json. Python thì không
7. Python có thể tự thực hiện phân luồng xử lý. VBA phải dựa vào một ngôn ngữ khác
8.
Python có thể lập trình AI , Machine Learning.
9. Python có thể đọc trong tệp .py các ký tự bảng mã Unicode.
VBA
thì chỉ có thể là Á À , Ú Ù, ????
10.
Để tìm kiếm gói Python chỉ cần vào https://pypi.org/, Github, stackoverflow.com. Với VBA thì phải tìm mọi nẻo đường
11. Python có thể nhúng.
12. Python đang phát triển, cộng đồng hỗ trợ. VBA thì lỗi thời
13. ...

Có thể tải gói ứng dụng về sử dụng ngay với Python. VBA thì phải nhiều động tác bằng tay.

Một số gói ứng dụng cực chất được viết cho trong Python:
Gói xử lý ngôn ngữ tự nhiên trong Python là NLTK , NLTK có thể phân tích, liệt kê cả một quyển sách nhanh chóng. Nếu bắt buộc viết lại NLTK trong VBA thì một lập trình viên sẽ "đầu hàng".
Gói OpenCV, TensorFlow,
Gói hệ thống: psutil
...

Trong lập trình WIN API anh phải bỏ công tìm kiếm học WIN API để viết ứng dụng VBA, có khi phải code 80% ứng dụng.
Python thì chỉ việc mượn lại các gói có sẵn của cộng đồng cho ứng dụng của mình.

Trong Python nếu lập trình viên có ý tưởng, thì cộng đồng sẽ hỗ trợ họ. Nếu có ý tưởng với VBA thì tự thân phát triển. Và Lập trình viên VBA không ai muốn chia sẽ ý tưởng với cộng đồng. Python lại rất khác.

sự ra đời của Python cũng giống như sự ra đời ngôn ngữ bậc thấp Visual C C++ để thay thế Assembly , Assembly thay thế Mã máy
 
Lần chỉnh sửa cuối:
Upvote 0
Nhân tiện Python:
- có thể tạo 'docstrings' cho UDF;
- tạo Dynamic array (gõ hàm ở một cell và kết quả trả về cả mảng xuống bảng tính) với 1 dòng lệnh (có sẵn thư viện rồi).
 
Upvote 0
Bạn nói là dùng Windows API thì làm được tuốt thì tôi cũng phải đồng ý thôi. Ai cũng nói được điều hiển nhiên đó, cả những người chưa từng lập trình Windows API. Vấn đề là làm thế nào. Thế thôi.

Bạn có thể bật mí, cho một code Python cụ thể dùng để chuyển bàn phím trong system không? Vd. trong máy tôi luôn có 3 bàn phím. Mặc định là bàn phím Ba Lan. Những khi tôi cần viết bài lên GPE thì tôi chọn bàn phím Vietnamese. Khi cần thì tôi lại chọn bàn phím Anh. Bạn viết trong Python thế nào để nhập bàn phím vietnamese cho tôi bất luận bàn phím hiện hành thế nào?
Mặc định Windows. Thì anh có thể sử dụng hướng dẫn trong Docs Microsoft: Set Dislay Language , Set default Language
 
Upvote 0
@Nguyễn Hoàng Oanh Thơ
Có nhiều cách để thực hiện tuy nhiên nó đi từ dể cho đến rất khó.

Tôi nghĩ OT nên dùng phương thức thoát chương trình cho đơn giản. Nếu công nhân người thì thích Unikey, người thì VietKey... Thì không cần biết ứng dụng đang bật hay tắt: Vẫn thực hiện thoát hẳn Unikey , VietKey, EVkey , ... , sau khi VBA thực hiện xong sẽ tự động mở lại:
  1. Xem máy tính có đang mở ứng dụng gõ dấu không.
  2. Nếu có thì thực hiện lấy đường dẫn ứng dụng và đồng thời thoát.
  3. Mở lại ứng dụng gõ dấu
Cảm ơn HeSanbi đã quan tâm và góp ý,cái này code sao vậy HeSanbi?

Công nhân batman1 luôn luôn viết tiếng Việt bằng bàn phím của Windows. Vậy tôi đề nghị xử lý thêm trường hợp của công nhân batman1.
.
Dạ, khi nào Bác nghỉ giải lao, Bác giúp con trường hợp trên với ạ.
Hoặc xử lý ngay công nhân batman1. Đợt nào có giảm biên chế thì cho nghỉ luôn chẳng hạn :D
Đã xét thì xét tới cùng nhỉ
Hi, không có sản phẩm của mình thì họ không làm sao, vì có sản phẩm của mình mà họ bị nghỉ thì ác quá Bác nhỉ.
Con cảm ơn Bác.
 
Upvote 0
Cái scanner nó nhập dữ liệu kiểu gõ vô ô phải không nhỉ? Nếu thế dùng validation được không?
Chào bạn, Đúng như thế ạ.Scanner nó nhập dữ liệu từ ô A1:An (trong cột A) , kiểu gõ lần lượt như soạn thảo văn bản (từng từ 1 từ trái sang phải).

Nếu thế dùng validation thì vẫn có thể ngăn được lỗi có dấu này như ví dụ (OT chưa thử ngoài thực tế) chỉ thao tác trên lý thuyết như gõ văn bản.
Nhưng thực tế công nhân khi bắt đầu Scanner họ không ngồi ở máy hay nhìn máy tính đâu ạ mà họ cầm thiết bị Scanner cứ thế quét nên hệ thống có thông báo lỗi hay không lỗi họ cũng không biết ạ.
Vì vậy mà cách này không khả thi ạ.

Cảm ơn bạn nhiều.
 
Upvote 0
Lý do em nói vậy là vì thế mạnh của Python. Các gói ứng dụng tác vụ xử lý Windows được cộng đồng viết sẵn, mã nguồn đa số mã nguồn mở. Mình có thể sử dụng các gói sẵn có đó + vấn đề mình cần. Mình không phải bỏ công viết lại cả một ứng dụng.
Riêng Python cơ bản cũng đủ thấy sự tiện dụng của nó.

Một vài ví dụ:
1.
Để tách một chuỗi "Giải Pháp Excel":
Python: Chuoi = List("Giải Pháp Excel")
VBA: phải viết một vòng lặp duyệt qua từng ký tự chuỗi
2. Để biết "Excel" có trong Array("Giải", "Pháp", "Excel"):
Python: HasChuoi = "Excel" In ["Giải", "Pháp", "Excel"]
VBA
: phải viết một vòng lặp duyệt qua mảng
3. Python có thể gán trực tiếp vòng lặp:
ArrayChuoi = [x*2 for x in Range(10)]
4. Có thể lấy ra phần tử của chuỗi và mảng nhanh chóng:
ArrayChuoi2 = ArrayChuoi[2 : 6]
và đảo nhanh chóng:
ArrayChuoi3 = ArrayChuoi[6 : 2 : -1]
VBA thì phải viết lại.
5. Python có thể gán trực tiếp một tham số truyền vào:
Math = lambda x: x**2 + 2*x - 5
6. VBA phải viết cả ứng dụng để xử lý dữ liệu Json. Python thì không
7. Python có thể tự thực hiện phân luồng xử lý. VBA phải dựa vào một ngôn ngữ khác
8.
Python có thể lập trình AI , Machine Learning.
9. Python có thể đọc trong tệp .py các ký tự bảng mã Unicode.
VBA
thì chỉ có thể là Á À , Ú Ù, ????
10.
Để tìm kiếm gói Python chỉ cần vào https://pypi.org/, Github, stackoverflow.com. Với VBA thì phải tìm mọi nẻo đường
11. Python có thể nhúng.
12. Python đang phát triển, cộng đồng hỗ trợ. VBA thì lỗi thời
13. ...

Có thể tải gói ứng dụng về sử dụng ngay với Python. VBA thì phải nhiều động tác bằng tay.

Một số gói ứng dụng cực chất được viết cho trong Python:
Gói xử lý ngôn ngữ tự nhiên trong Python là NLTK , NLTK có thể phân tích, liệt kê cả một quyển sách nhanh chóng. Nếu bắt buộc viết lại NLTK trong VBA thì một lập trình viên sẽ "đầu hàng".
Gói OpenCV, TensorFlow,
Gói hệ thống: psutil
...

Trong lập trình WIN API anh phải bỏ công tìm kiếm học WIN API để viết ứng dụng VBA, có khi phải code 80% ứng dụng.
Python thì chỉ việc mượn lại các gói có sẵn của cộng đồng cho ứng dụng của mình.

Trong Python nếu lập trình viên có ý tưởng, thì cộng đồng sẽ hỗ trợ họ. Nếu có ý tưởng với VBA thì tự thân phát triển. Và Lập trình viên VBA không ai muốn chia sẽ ý tưởng với cộng đồng. Python lại rất khác.

sự ra đời của Python cũng giống như sự ra đời ngôn ngữ bậc thấp Visual C C++ để thay thế Assembly , Assembly thay thế Mã máy

Nhìn qua một số điểm sáng của ngôn ngữ thì mình thấy đúng là nếu viết code bằng Python sẽ ngắn gọn thật. Có thể nói code của Python sẽ ngắn gọn hơn C, Pascal, Delphi, .NET, VB/VBA (có thể là gần như vậy) . Nhưng đây là vấn đề của ngôn ngữ. Như kiểu người nói tiếng. Anh, người nói tiếng Việt. Công lực vẫn là con người. Hình như Python là không có biên dịch mã máy vì thế các lập trình viên khi tham gia ngôn ngữ nò thì dù có không muốn Open thì cũng phải Open nên theo đánh giá chủ quan của mình thì Python, ngoài vấn đề ngôn ngữ ngắn nó còn là phương tiện thể thực thi các dự án OpenSource mà ai tham gia đều buộc phải Open?

Lập trình VBA do Microsoft phát triển nó can thiệt trực tiếp vào các Object của Application - Excel. MS đã "iểm bùa" cho nhôn ngữ này khi làm việc với VBA ở một số hoàn cảnh tốc độ chạy nhanh hơn bất kẻ ngôn ngữ nào có nhúng với nó. VÍ dụ các bạn làm
Dim Arr
Arr = Range("A1:H10000").Value -> Code này lấy ra mảng giá trị trong vùng A1:H10000

Tôi đã thử vài ngôn ngữ lập trình thì chưa có cái nào nhanh bằng VBA, nhưng khi xử lý các phép toán mà không đụng vào Object của Excel thì VBA đứng thứ bét, vì nó là Script chứ không phải ngôn ngữ biên dịch ra mã máy, và C, Delphi là là đỉnh cao của tốc độ.

Quay về bài toán của bạn OT thì đây là vấn đề hiểm hóc phết. Tôi nói tình huống có thể đa dạng hơn

Trong một Userform, có n textbox: TextBox1, TextBox2,....TextBoxn. Người lập trình quy ước TextBox1 là dùng để nhận barcode, các cái còn lại làm nhiện vụ ghi nhận thêm thông tin. Vậy chỉ khi con trỏ vào TextBox1 thì Unikey mới tắt chế độ gõ tiếng Việt, khi con trỏ nhảy ra khỏi thì lại khôi phục về trạng thái cũ để người ta nhập liệu tư do, đây là vấn đề khó. Nên giải pháp KillTask hay API: WM_CLOSE Unikey sẽ vẫn chưa được tin cậy. Nhưng nếu chỉ quan tâm tắt phéng đi để scan cái đã thì có thể dùng được rồi.
Bài đã được tự động gộp:

Nhân tiện Python:
- có thể tạo 'docstrings' cho UDF;
- tạo Dynamic array (gõ hàm ở một cell và kết quả trả về cả mảng xuống bảng tính) với 1 dòng lệnh (có sẵn thư viện rồi).

Về giải thuật thì gần như bất kể ngôn ngữc lập trình nào cũng làm được điều này. VBA làm lại còn ngắn gọn hơn. Nhưng vấn đề ở chỗ đã có ai code dự án đó chưa chứ bản thân ngôn ngữ nào cũng chắc chắn không có sẵn những thứ gọi là "thủ thuật" riêng của Excel.
 
Lần chỉnh sửa cuối:
Upvote 0
..
Quay về bài toán của bạn OT thì đây là vấn đề hiểm hóc phết. Tôi nói tình huống có thể đa dạng hơn

Trong một Userform, có n textbox: TextBox1, TextBox2,....TextBoxn. Người lập trình quy ước TextBox1 là dùng để nhận barcode, các cái còn lại làm nhiện vụ ghi nhận thêm thông tin. Vậy chỉ khi con trỏ vào TextBox1 thì Unikey mới tắt chế độ gõ tiếng Việt, khi con trỏ nhảy ra khỏi thì lại khôi phục về trạng thái cũ để người ta nhập liệu tư do, đây là vấn đề khó. Nên giải pháp KillTask hay API: WM_CLOSE Unikey sẽ vẫn chưa được tin cậy. Nhưng nếu chỉ quan tâm tắt phéng đi để scan cái đã thì có thể dùng được rồi.
Híc như ý kiến của anh Tuân việc hi vọng sử dụng bằng userForm cũng chưa có giải pháp ạ. T_T
 
Upvote 0
Nhìn qua một số điểm sáng của ngôn ngữ thì mình thấy đúng là nếu viết code bằng Python sẽ ngắn gọn thật. Có thể nói code của Python sẽ ngắn gọn hơn C, Pascal, Delphi, .NET, VB/VBA (có thể là gần như vậy) . Nhưng đây là vấn đề của ngôn ngữ. Như kiểu người nói tiếng. Anh, người nói tiếng Việt. Công lực vẫn là con người. Hình như Python là không có biên dịch mã máy vì thế các lập trình viên khi tham gia ngôn ngữ nò thì dù có không muốn Open thì cũng phải Open nên theo đánh giá chủ quan của mình thì Python, ngoài vấn đề ngôn ngữ ngắn nó còn là phương tiện thể thực thi các dự án OpenSource mà ai tham gia đều buộc phải Open?

ĐỌC BÀI NÀY Mạnh thấy mấy chữ To mà Đen thế kia thì hoc xong viết code mà ko bảo vệ được chính thành quả của mình thì chám lắm
hay viết xong lại phải dùng 1 Tools của bên thứ 3 thứ 4 gì đó Bill nó lại xong mới cho ai đó xài thấy mất công quá

lâu nay thấy mọi người nói Python rảnh tính mò thử quậy chơi xem tình hình sao ... thấy nói vậy mất gió luôn ... 123 Run -0-0-0--0-0-0-
 
Upvote 0
ĐỌC BÀI NÀY Mạnh thấy mấy chữ To mà Đen thế kia thì hoc xong viết code mà ko bảo vệ được chính thành quả của mình thì chám lắm
hay viết xong lại phải dùng 1 Tools của bên thứ 3 thứ 4 gì đó Bill nó lại xong mới cho ai đó xài thấy mất công quá

lâu nay thấy mọi người nói Python rảnh tính mò thử quậy chơi xem tình hình sao ... thấy nói vậy mất gió luôn ... 123 Run -0-0-0--0-0-0-

Vì mọi người ca ngợi PyThon có cộng đồng mở mà - Đây cũng là điểm tích cực. Chỉ cần có ý tưởng thì cả cộng đồng cùng phát triển nên Pythone như một "luật" của cuộc chơi này :D .
Bài đã được tự động gộp:

Híc như ý kiến của anh Tuân việc hi vọng sử dụng bằng userForm cũng chưa có giải pháp ạ. T_T

Userform trong trường hợp của em làm tốt nhất rồi. Nhưng còn lại là vấn đề chấp nhận nó ở ngưỡng nào thôi.
 
Upvote 0
Vì mọi người ca ngợi PyThon có cộng đồng mở mà - Đây cũng là điểm tích cực. Chỉ cần có ý tưởng thì cả cộng đồng cùng phát triển nên Pythone như một "luật" của cuộc chơi này :D .
Bài đã được tự động gộp:


Userform trong trường hợp của em làm tốt nhất rồi. Nhưng còn lại là vấn đề chấp nhận nó ở ngưỡng nào thôi.
Hi, anh Tuân có thể gửi cho Oanh Thơ xin cái Userform này được không ạ. Trong quá trình thử nghiệm phát sinh ở đâu thì lại xử lý tiếp ở đó ạ.
Cảm ơn anh ạ.
 
Upvote 0
Hi, anh Tuân có thể gửi cho Oanh Thơ xin cái Userform này được không ạ. Trong quá trình thử nghiệm phát sinh ở đâu thì lại xử lý tiếp ở đó ạ.
Cảm ơn anh ạ.

Mình định làm theo hướng như đã nói nhưng không được. Bạn có thể dùng theo cách tắt tự động UniKey (không quan tâm đến việc mở lại) thì dùng kiểu Killtask hay API: WM_CLOSE ở các bài trên là được. Nếu bạn khó khăn về việc đưa vào Userform thì tôi có thể làm.
 
Upvote 0
Mặc định Windows. Thì anh có thể sử dụng hướng dẫn trong Docs Microsoft: Set Dislay Language , Set default Language
Thứ nhất tôi không hỏi về mặc định. Mấy cái thiết lập trong CP thì ai chả biết. Tôi hỏi rất cụ thể: tôi chọn liên tục bàn phím Ba Lan, vietnamese, Anh để viết. Trong thời điểm bất kỳ tôi muốn code của bạn chọn bàn phím Anh bất luận ở thời điểm đó tôi đang có bàn phím nào. Thứ hai là tôi muốn nhờ code Python vì bạn nói có thể làm gọn hơn.
 
Upvote 0
ĐỌC BÀI NÀY Mạnh thấy mấy chữ To mà Đen thế kia thì hoc xong viết code mà ko bảo vệ được chính thành quả của mình thì chám lắm
hay viết xong lại phải dùng 1 Tools của bên thứ 3 thứ 4 gì đó Bill nó lại xong mới cho ai đó xài thấy mất công quá

lâu nay thấy mọi người nói Python rảnh tính mò thử quậy chơi xem tình hình sao ... thấy nói vậy mất gió luôn ... 123 Run -0-0-0--0-0-0-

phải cho người khác xem thì người ta mới cho mình xem chứ , ấy là học hỏi lẫn nhau ^^

Bạn nói là dùng Windows API thì làm được tuốt thì tôi cũng phải đồng ý thôi. Ai cũng nói được điều hiển nhiên đó, cả những người chưa từng lập trình Windows API. Vấn đề là làm thế nào. Thế thôi.
theo em thì assembly mới là làm đc tuốt !^^
 
Lần chỉnh sửa cuối:
Upvote 0
Mình định làm theo hướng như đã nói nhưng không được. Bạn có thể dùng theo cách tắt tự động UniKey (không quan tâm đến việc mở lại) thì dùng kiểu Killtask hay API: WM_CLOSE ở các bài trên là được. Nếu bạn khó khăn về việc đưa vào Userform thì tôi có thể làm.
Dạ vâng, ý tưởng của Anh dùng form để lấy QR_code (thì sẽ an toàn và không rủi ro do bộ gõ) nên OT cũng tò mò muốn kiểm nghiệm ạ..xuất phát từ ý tưởng của Anh nên OT nghĩ chỉ là đưa QR-Code vào 1 textbox trong Form(mỗi QR-Code 1 dòng) sau khi kết thúc xong sẽ đưa toàn bộ dữ liệu trong Form xuống bảng tính mỗi dòng trong textbox ghi vào 1 ô trên bảng tính lần lượt từ ô A1:An.Lấy Form làm trung gian nhận QR-Code thay vì ghi thẳng vào bảng tính.
Theo kinh nghiệm của anh hiện tại vấn đề OT thắc mắc đang là tình hình chung nên có thể sẽ có nhiều người quan tâm. Vì vậy mà OT vẫn đang hi vọng có một hướng khác sử dụng Form theo hướng anh Tuân đã nêu ạ.
Cảm ơn Anh nhiều ạ.
 
Upvote 0
Xin chào các bạn.
Có thể sử dụng code để điều khiển ứng dụng Unikey được không ạ?
Ví dụ: Unikey đang ở chế độ gõ tiếng Việt, sau khi chạy code chuyển sang chế độ gõ tiếng Anh. Hoặc Unikey đang mở thì đóng lại ạ.
Bạn thử xem được không.
Hoạt động của bộ gõ tiếng Việt rất phức tạp (ít nhất là đối với Unikey trên máy tôi). Tôi mới chỉ chạy thử khi nhập từ bàn phím với Unikey và máy của tôi thôi, không biết trên máy khác và/hoặc bộ gõ khác và khi scan barcode thì như thế nào.
Code trong file đính kèm hoạt động theo cơ chế nhận Keycode của sự kiện KeyUp, loại bỏ Keycode của Unikey và chuyển Keycode về ký tự.
 

File đính kèm

  • Textbox to scan barcode.xlsm
    25.5 KB · Đọc: 20
Upvote 0
Web KT
Back
Top Bottom