VBA đã hỗ trợ unicode trên các control, tuy nhiên việc nhập tiếng việt trong code để đưa vào excel vẫn thật sự khó khăn. Có rất nhiều cách giải quyết khác nhau mà mình cũng đã từng thử trong đó việc sử dụng bảng mã unicode mà VBA hỗ trợ là dễ dàng nhưng biết được mã ascii của các ký tự việt thì khá lâu.
Mình vẫn hay dùng chương trình sử dụng đoạn code này để có thể đưa tiếng việt vào ô mỗi khi lập trình excel. Bạn có thể tạo 1 form 2 textbox, sử dụng event textbox1_change() có trong VBA
Khi đó các bạn nhập vào textbox1 là: Tiếng việt Unicode thì textbox2 sẽ hiện ra "Ti"+ChrW(7871)+"ng vi"+ChrW(7879)+"t Unicode"
Các bạn có thể lấy ngay dòng chữ này vào VBA Project đang cần sử dụng tiếng việt
application.cells(5,4) = "Ti"+ChrW(7871)+"ng vi"+ChrW(7879)+"t Unicode" thì ô đó sẽ hiển thị được tiếng việt
Các bạn có thể test thử trong VBA (nếu là VB6 thì textbox lại ko hỗ trơ unicode), ngoài ra có thể tạo tự động chạy mỗi khi mở excel có chứa chương trình này bằng cách thêm một module
Mình vẫn hay dùng chương trình sử dụng đoạn code này để có thể đưa tiếng việt vào ô mỗi khi lập trình excel. Bạn có thể tạo 1 form 2 textbox, sử dụng event textbox1_change() có trong VBA
PHP:
Private Sub TextBox1_Change()
For i = 1 To Len(TextBox1)
If i = 1 Then
If AscW(TextBox1) > 127 Then
TextBox2.Text = "ChrW(" + CStr(AscW(TextBox1)) + ")"
Else
TextBox2.Text = Chr(34) + Mid(TextBox1, i, 1) + Chr(34)
End If
Else
If AscW(Mid(TextBox1, i, 1)) > 127 Then
TextBox2.Text = TextBox2.Text + "+" + "ChrW(" + _
CStr(AscW(Mid(TextBox1, i, 1))) + ")"
Else
If AscW(Mid(TextBox1, i - 1, 1)) < 127 Then
TextBox2.Text = Left(TextBox2.Text, Len(TextBox2.Text) - 1) + _
Mid(TextBox1, i, 1) + Chr(34)
Else
TextBox2.Text = TextBox2.Text + "+" + Chr(34) + _
Mid(TextBox1, i, 1) + Chr(34)
End If
End If
End If
Next
End Sub
Khi đó các bạn nhập vào textbox1 là: Tiếng việt Unicode thì textbox2 sẽ hiện ra "Ti"+ChrW(7871)+"ng vi"+ChrW(7879)+"t Unicode"
Các bạn có thể lấy ngay dòng chữ này vào VBA Project đang cần sử dụng tiếng việt
application.cells(5,4) = "Ti"+ChrW(7871)+"ng vi"+ChrW(7879)+"t Unicode" thì ô đó sẽ hiển thị được tiếng việt
Các bạn có thể test thử trong VBA (nếu là VB6 thì textbox lại ko hỗ trơ unicode), ngoài ra có thể tạo tự động chạy mỗi khi mở excel có chứa chương trình này bằng cách thêm một module
Mã:
Private sub auto_open()
userform1.show 'Neu form ban su dung la ten la useform1
End sub
Chỉnh sửa lần cuối bởi điều hành viên: