thuyyeu99
trong thẻ font bạn chon font có hổ trợ tiếng Việt là được. Nhưng columnhead là nét ưu việt của Listview sau lại hide nó đi? Trong Listbox thì dòng tiêu đề cột là columnhead. Vậy bạn muốn nó hiển thị ra sao thì gõ cụ thể vào dòng ngày. Trong Listview thì bạn có thể thay đổi tiêu đề tùy ý.
Trên VBA đâu có hỗ trợ font Unicode. Nếu dùng Font Unicode thì không riêng tiêu đề mà cả trong List cũng không hiển thị được. Nếu dữ liệu là font Unicode thì sủ dụng hàm để chuyển về font tiếng Việt khác có hỗ trợ trên Listview.
Không phải vậy, trên Excel thì cứ tôn trọng để nguyên vậy, chỉ đổi khi nạp vào listview thôi như phương án 2 của bạn. Bạn gủi File ví dụ lên mình làm để bạn xem chứ viết bằng lời thế này khó quá và gửi cho cái hàm convert font mình sưu tầm trên diễn đàn khá ngắn gọný của anh là mình phải chuyển dữ liệu góc trên Ễccll thành font ABC đúng không hay có cách nào dữ liệu trên excell vẫn là UNI nhưng có cách nào khi load vào LV minh convert nó qua ABC không
Const CodUni = "225 224 7843 227 7841 259 7855 7857 7859 7861 7863 226 7845 7847 7849 7851 7853 233 232 7867 7869 7865 234 7871 7873 7875 7877 7879 237 236 7881 297 7883 243 242 7887 245 7885 244 7889 7891 7893 7895 7897 417 7899 7901 7903 7905 7907 250 249 7911 361 7909 432 7913 7915 7917 7919 7921 253 7923 7927 7929 7925 273 193 193 192 192 7842 7842 195 195 7840 7840 258 258 7854 7854 7856 7856 7858 7858 7860 7860 7862 7862 194 194 7844 7844 7846 7846 7848 7848 7850 7850 7852 7852 201 201 200 200 7866 7866 7868 7868 7864 7864 202 202 7870 7870 7872 7872 7874 7874 7876 7876 7878 7878 205 204 7880 296 7882 211 211 210 210 7886 7886 213 213 7884 7884 212 212 7888 7888 7890 7890 7892 7892 7894 7894 7896 7896 416 7898 7898 7900 7900 7902 7902 7904 7904 7906 7906 218 218 217 217 7910 7910 360 360 7908 7908 431 7912 7912 7914 7914 7916 7916 7918 7918 7920 7920 221 221 7922 7922 7926 7926 7928 7928 7924 272 "
Const StrVn3 = "¸µ¶·¹¨¾»¼½Æ©ÊÇÈÉËÐÌÎÏѪÕÒÓÔÖÝ×ØÜÞãßáâä«èåæçé¬íêëìîóïñòôøõö÷ùýúûüþ®¸¸µµ¶¶··¹¹¡¡¾¾»»¼¼½½ÆÆ¢¢ÊÊÇÇÈÈÉÉËËÐÐÌÌÎÎÏÏÑÑ££ÕÕÒÒÓÓÔÔÖÖÝ×ØÜÞããßßááââä䤤èèååææççéé¥ííêêëëììîîóóïïññòòôô¦øøõõöö÷÷ùùýýúúûûüüþ§"
Option Explicit
Function UniVn3(text As String) As String
For i = 1 To Len(text)
kytu = Mid(text, i, 1)
codkytu = AscW(kytu) & String(5 - Len(CStr(AscW(kytu))), " ")
vitri = (InStr(1, CodUni, codkytu, 0) + 4) / 5
If vitri >= 1 Then
newtext = newtext & Mid(StrVn3, vitri, 1)
Else
newtext = newtext & kytu
End If
Next
UniVn3 = newtext
End Function
Không phải vậy, trên Excel thì cứ tôn trọng để nguyên vậy, chỉ đổi khi nạp vào listview thôi như phương án 2 của bạn. Bạn gủi File ví dụ lên mình làm để bạn xem chứ viết bằng lời thế này khó quá và gửi cho cái hàm convert font mình sưu tầm trên diễn đàn khá ngắn gọn
Hàm chuyển font UNI sang TCVN3 như sau:
Mã:Const CodUni = "225 224 7843 227 7841 259 7855 7857 7859 7861 7863 226 7845 7847 7849 7851 7853 233 232 7867 7869 7865 234 7871 7873 7875 7877 7879 237 236 7881 297 7883 243 242 7887 245 7885 244 7889 7891 7893 7895 7897 417 7899 7901 7903 7905 7907 250 249 7911 361 7909 432 7913 7915 7917 7919 7921 253 7923 7927 7929 7925 273 193 193 192 192 7842 7842 195 195 7840 7840 258 258 7854 7854 7856 7856 7858 7858 7860 7860 7862 7862 194 194 7844 7844 7846 7846 7848 7848 7850 7850 7852 7852 201 201 200 200 7866 7866 7868 7868 7864 7864 202 202 7870 7870 7872 7872 7874 7874 7876 7876 7878 7878 205 204 7880 296 7882 211 211 210 210 7886 7886 213 213 7884 7884 212 212 7888 7888 7890 7890 7892 7892 7894 7894 7896 7896 416 7898 7898 7900 7900 7902 7902 7904 7904 7906 7906 218 218 217 217 7910 7910 360 360 7908 7908 431 7912 7912 7914 7914 7916 7916 7918 7918 7920 7920 221 221 7922 7922 7926 7926 7928 7928 7924 272 " Const StrVn3 = "¸µ¶·¹¨¾»¼½Æ©ÊÇÈÉËÐÌÎÏѪÕÒÓÔÖÝ×ØÜÞãßáâä«èåæçé¬íêëìîóïñòôøõö÷ùýúûüþ®¸¸µµ¶¶··¹¹¡¡¾¾»»¼¼½½ÆÆ¢¢ÊÊÇÇÈÈÉÉËËÐÐÌÌÎÎÏÏÑÑ££ÕÕÒÒÓÓÔÔÖÖÝ×ØÜÞããßßááââä䤤èèååææççéé¥ííêêëëììîîóóïïññòòôô¦øøõõöö÷÷ùùýýúúûûüüþ§" Option Explicit Function UniVn3(text As String) As String For i = 1 To Len(text) kytu = Mid(text, i, 1) codkytu = AscW(kytu) & String(5 - Len(CStr(AscW(kytu))), " ") vitri = (InStr(1, CodUni, codkytu, 0) + 4) / 5 If vitri >= 1 Then newtext = newtext & Mid(StrVn3, vitri, 1) Else newtext = newtext & kytu End If Next UniVn3 = newtext End Function
Function TableToArray(ByVal TableName As String)
Dim arr
Dim vRange As Range
Dim i As Long, j As Long, m As Long, n As Long
If Not RangeNameExists(TableName) Then Exit Function 'Neu khong ton tai thi thoat
On Error Resume Next
Set vRange = Range(TableName)
i = vRange.Rows.Count
j = vRange.Columns.Count
ReDim arr(1 To i, 1 To j)
For m = 1 To i
For n = 1 To j
If IsNumeric(vRange(m, n).Value) Then
arr(m, n) = Format(vRange(m, n).Value, "#,##0")
Else
arr(m, n) = UniVn3(vRange(m, n).Value)
End If
Next n
Next m
TableToArray = arr
Set vRange = Nothing
End Function
Ah em còn 1 vấn đề này nữa có cách nào cho TB hiển thị UNI mà không chỉnh trong Propety không anh
Private Sub TextCode_Change()
Dim it As ListItem
btim = Me.TextCode.text
For i = 1 To Me.LVDataSelector.ListItems.Count
Set it = Me.LVDataSelector.ListItems.Item(i)
If InStr(1, it.SubItems(1), btim, 0) Then Exit For
Next
bindex = i
Me.LVDataSelector.ListItems.Item(bindex).Selected = True
Me.LVDataSelector.ListItems.Item(bindex).EnsureVisible
End Sub