Em có mấy Add _ Ins tuy nhiên khi chuyển font chữ từ (Vntime hoặc VntimeH) sang Times New Roman thì chữ IN bị biến mất sang chữ thưởng. Có bác nào chuyển font mà khắc phục được nhược điểm này không cho em xin, em đang rất cần. Xin chân thành cảm ơn
Giải pháp tạm thời: bạn dùng chức năng chuyển mã của Unikey đi (nhớ copy 1 bản dự phòng trước khi làm theo các bước sau nhé)Em có mấy Add _ Ins tuy nhiên khi chuyển font chữ từ (Vntime hoặc VntimeH) sang Times New Roman thì chữ IN bị biến mất sang chữ thưởng. Có bác nào chuyển font mà khắc phục được nhược điểm này không cho em xin, em đang rất cần. Xin chân thành cảm ơn
Em đã tải xuống rồi nhưng nó vẫn bị lỗi font khi em thực hiện chuyển đổi (chọn vùng chuyển sau đó nhấn Ctrl+Q), mục đích của em là chữ thường sau khi chuyển đổi vẫn là chữ thường, chữ hoa (VntimH) sau khi chuyển đổi sang Times New Roman nó vẫn là chữ hoa, tuy nhiên em thấy VnTimeH khi chuyển đổi vẫn có nhược điểm lại biến thành chữ thường.Bạn thử xem phần mềm chuyển đổi của bác handung107 tại địa chỉ http://www.giaiphapexcel.com/forum/showthread.php?117-Convert-Font-Add-in-của-OverAC , tôi thấy nó rất tiện lợi và hay
Bạn hỏi cho word hay excel? Có 1 topic hỏi cho word mà không nói rõ, tôi đã trả lời bằng hàm cho excel, và bị quê 1 cục:
http://www.giaiphapexcel.com/forum/...ẫn-lộn-cả-Vntime-và-Times-New-Roman-về-1-loại
Nếu dùng cho excel thì lấy hàm AlltoUni() trong topic này:
http://www.giaiphapexcel.com/forum/...p-nhật-Unicode-sheet-kia.&p=212481#post212481
AlltoUni() chỉ có 1 tham số, dùng chung cho mọi font .vn, .vnH, Vni-, và chuyể sang Unicode, chữ in còn nguyên chữ in.
Tác giả của Addin Functions.xla có lên tiếng trong link thứ 2 của thầy ptm0412 đó bạn. Đây nè:Em cứ tưởng là Ok rồi, nhưng phần mềm Functions.xla nó vẫn bị lỗi chữ a khi chuyển đổi, những ô có công thức sử dụng như dùng hàm Concatenate thì không chuyển đổi được, các chức năng khác khá thuận lợi, bác nào là tác giả phần mềm này giúp em với.
Thày ơi, thày cho em hỏi em có dùng bản AlltoUni() của thày về thì rất là chuẩn không bị lỗi, tuy nhiên lại phải dùng hàm cho từng ô liền. Tuy vậy, em muốn nó chuyển tự động cho cả vùng như Fution mà thày đã viết? Thày giúp em với ah, đa tạ thày.Tác giả của Addin Functions.xla có lên tiếng trong link thứ 2 của thầy ptm0412 đó bạn. Đây nè:
http://www.giaiphapexcel.com/forum/...p-nhật-Unicode-sheet-kia.&p=212522#post212522
Tác giả Function.xla là Paulstiegel, chuyên gia lập trình rất cao siêu.Tác giả của Addin Functions.xla có lên tiếng trong link thứ 2 của thầy ptm0412 đó bạn. Đây nè:
http://www.giaiphapexcel.com/forum/showthread.php?31789-Code-ứng-dụng-Gõ-TCVN3-sheet-này-tự-động-cập-nhật-Unicode-sheet-kia.&p=212522#post212522
dauthivan đã viết:Thày ơi, thày cho em hỏi em có dùng bản AlltoUni() của thày về thì rất là chuẩn không bị lỗi, tuy nhiên lại phải dùng hàm cho từng ô liền. Tuy vậy, em muốn nó chuyển tự động cho cả vùng như Fution mà thày đã viết? Thày giúp em với ah, đa tạ thày.
Sub abc()
Dim Arr
Dim iRows, iCols
Dim i As Long, j As Long
iRows = Selection.Rows.Count
iCols = Selection.Columns.Count
ReDim Arr(iRows, iCols)
For i = 1 To iRows
For j = 1 To iCols
Arr(i, j) = AllToUni(Selection(i, j))
Next
Next
Selection = Arr
Selection.Font.Name = "Arial"
End Sub
Sub abc()
Dim Arr, Area1 As Range
Dim iRows, iCols
Dim i As Long, j As Long
For Each Area1 In Selection.Areas
iRows = Area1.Rows.Count
iCols = Area1.Columns.Count
ReDim Arr(iRows, iCols)
For i = 1 To iRows
For j = 1 To iCols
Arr(i, j) = AllToUni(Area1(i, j))
Next
Next
Range(Area1.Address) = Arr
Next
Selection.Font.Name = "Arial"
End Sub
Cảm ơn thày, công việc của em là quản lý dự toán XD, nhiều đơn vị nhà thầu gửi đến gồm rất nhiều font, việc giữ lại các công thức là quan trọng, các phần mềm em sưu tầm được đều giải quyết giữ được công thức, tuy nhiên mỗi cái nó lại có lỗi nhỏ riêng thế mới bực chứ. Tất nhiên, có vậy là tốt lắm rồi, (trừ khi công việc quá nhiều, khối lượng lớn thì kể ra cũng hơi mệt).
Cảm ơn thày nhiều, thày thử dùng cái em vừa tải lên xem thế nào thày nhé.
AlltoUni bảo đảm không can thiệp vào format:
Trước khi chuyển đổi:
View attachment 58949
Sau khi chuyển đổi:
View attachment 58950
Đại xem lại có lỗi gì không, sao mình tải về có chuyển được font gì đâu mặc dù chức năng chuyển đổi chữ thường, chữ hoa vẫn được?Thật tuyệt vời em vừa tách được một Add_Ins hoàn hảo 100% luôn thày ah? Không những chuyển không bị lỗi mà còn giữ được nguyên công thức.
Thưa thày ptm0412 em thấy Functions rất gần với ứng dụng của thày, nó cũng bị lỗi chữ Đ như thày vừa sửa. Em chưa biết nhiều về VBA kính mong thày khắc phục cho em lỗi trên của Functions. Em cảm ơn thày nhiều.Cảm ơn các bác em đã tìm ra được trên diễn đàn Functions đúng ý em đang cần rồi, em thấy nó rất hay em chưa kịp lưu lại trang đó. Em xin phép được đưa lên đây để mọi người cần dùng
Thày ơi Tiện ích của Thày Long, em xin trích dẫn địa chỉ tại http://www.giaiphapexcel.com/forum/showthread.php?2738-Công-cụ-hỗ-trợ-tiếng-Việt-cho-Excel, thày có thể khắc phục điểm sau khi chuyển đổi (VntimeH sang Unicode mà vẫn giữ được chữ in) không ah?
vào Go to bỏ lựa chọn các ô có công thức đi chuyển sẽ rất ngon lành, tuy nhiên mọi người trình độ excel không thạo lắm thì sẽ hơi khó khăn.
Thày xem lại hộ giúp em, em đã tải cái mới nhất theo địa chỉ của thày nhưng lỗi chữ Đ vẫn chưa được thày ah (em ví dụ chữ Đang thì nó tách thằng Đ dòng trên còn ang lại ở dòng dưới)Đa tạ, đa tạ các bác đã nhắc. Em xin lỗi về sự vô trách nhiệm của mình trong thời gian qua! Xin phép tải lên bản cập nhật mới nhất. Suốt mấy tháng gần đây em đi công tác nhiều quá nên không thể đưa bản cập nhật lên được. Tạm thời các bác có thể tải bản cập nhật từ link sau đây ạ. Hiện tại bản cập nhật chỉ sửa mỗi phần tự xuống dòng.
http://www.sfdp.net/tai-lieu-khac/bocongcuchuyenma/Functions.rar
Tài liệu hướng dẫn ở đây:
http://www.sfdp.net/tai-lieu-khac/bocongcuchuyenma/Manuals.rar
Về lỗi trên em xin giải thích như sau:
Do em dùng chuỗi thay thế trong một Nhãn của form chứa danh sách các chuỗi ký tự thay thế (để đỡ phải đưa chúng - những ký tự so sánh vào trong code) nên không để ý là nó tự thêm một ký tự xuống dòng tại cuối chuỗi nên khi chuyển đổi, tất cả các chữ Đ đều trả về Đ tương ứng ở bảng mã đích và một ký tự xuống dòng ạ.
Gia đình xin chân thành cảm ơn và thành thật xin lỗi.
PS: Thêm một tin vui nữa, em đang xây dựng thuật toán kiểm tra chính tả có thể sử dụng trong word và Excel sử dụng thuật toán có trong công cụ Aspell và Hunspell (viết cho Linux). Hy vọng 2-3 tuần nữa ta sẽ có một công cụ kiểm tra chính tả sơ khai.
Phần chuyển mã - thuật toán đoán mã sử dụng tính năng đoán loại trừ đang bị bế tắc do kết quả loại trừ quá khác biệt. Em thấy rằng có vẻ như ta đang bế tắc trong thiết kế thuật toán xử lý đoán mã tốt nhất. Do vậy, em nghĩ ta chỉ nên dùng cách tiếp cận đơn giản là đoán mã qua bộ phông chữ sử dụng thôi.
Ý kiến các bác thế nào ạ
Mong thày thông cảm cho em, em dự kiến học VBA từ trong Tết, do công việc cứ bộn bề suốt ngày không dứt ra được nên em mới bắt đầu đọc được chương đầu tiên sách của thày Hướng, thao tác mở đọc, sửa Code của đuôi Xla (Add_Ins) như thế nào em...chưa biết. Thày sửa giúp em cái vụ này với, em xin cảm ơn.VnTime và VntimeH là 2 bảng mã khác nhau, phải lập ra 2 bảng mã cho mỗi ký tự, chứ không phải đơn giản là hoa và thường. Cùng 1 font .vntime cũng có cả hoa trong đó (đ và Đ, ấ và Ấ)
Vì cùng là chữ thường, nhưng đổi font H sẽ là hoa, nghĩa là font H và hoa font thường sẽ khác mã.
Thí dụ 1: thường và hoa khác mã:
Font .vntime, chữ ô thường mã 171, chữ Ô hoa là 164
Font .vntimeH, chữ Ô hoa ( không shift) mã 171 và Ô hoa thứ 2 (shift) có mã 164
Thí dụ 2: thường và hoa cùng mã:
Font .vntime, chữ á thường có mã 184 và không có Á hoa. Nhấn shift gõ Á cũng trở thành á (184)
Font .vntimeH, cả 2 chữ Á (shift) và Á (không shift) đều là 184.
Do đó, đối với tiện ích này, không phải sửa lỗi, mà là bổ sung nguyên 1 bảng mã.
Sao bạn không làm như bài trên tôi nói, thêm vào code 1 dòng lệnh cho VBA tự chọn vùng không chứa công thức?
Activesheet.Cells.SpecialCells(2).Select
Mong thày thông cảm cho em, em dự kiến học VBA từ trong Tết, do công việc cứ bộn bề suốt ngày không dứt ra được nên em mới bắt đầu đọc được chương đầu tiên sách của thày Hướng, thao tác mở đọc Code của đuôi Xla (Add_Ins) như thế nào em...chưa biết. Thày sửa giúp em cái vụ này với, em xin cảm ơn.
Theo em chỗ này không ổn ạ, thực ra bảng mã là bảng mã còn phông chữ là phông chữ. Tiếng Viêt của chúng ta có 134 nguyên âm có dấu, cộng với các chữ cái thường và hoa thì trên thực tế đối với bảng mã ASCII có chỗ cho 255 ký tự khi trừ đi hàng loạt ký tự điều khiển thì có vẻ thiếu để đặt mã tiếng Việt để đảm bảo cả nguyên âm thường và nguyên âm có dấu dạng chữ Hoa.[[VnTime và VntimeH là 2 bảng mã khác nhau, phải lập ra 2 bảng mã cho mỗi ký tự, chứ không phải đơn giản là hoa và thường. Cùng 1 font .vntime cũng có cả hoa trong đó (đ và Đ, ấ và Ấ)]]
Em làm theo lời thày em đã gỡ bỏ hoàn toàn cái cũ nhưng vẫn bị lỗi, em gửi 2 file gốc (trước khi chuyển đổi) và file đã chuyển font cho thày dễ quan sát ah.1. Phản hồi về ý kiến của bạn Đại
Bạn Đại ơi, tôi nghĩ bạn chưa bỏ cái function.xla cũ nên mới như vậy đấy, bạn cần bỏ cái cũ ra rồi mới cài lại bản mới vào thì chức năng này mới hoạt động được ạ. Nếu vẫn không giải quyết được, có thể phần sửa chữa vẫn chưa triệt để. Nếu có thể bạn gửi cho tôi tập tin bạn đang gặp lỗi để tôi nghiên cứu nhé.
Địa chỉ mail của tôi là ngocdd@sfdp.net.
Thành thật xin lỗi bạn Đại vì giờ tôi mới có thời gian trả lời bài viết. Tôi đã kiểm tra công cụ và lỗi nằm ở phần định dạng chuỗi Unicode đầu vào. Giống như tôi đã phân tích lần trước, tôi vô tình để có một dấu xuống dòng ở cuối chuỗi sát chữ Đ nên khi chuyển đổi công cụ thay thế tất cả những chữ Đ trong TCVN thành chữ Đ Unicode kèm theo dấu xuống dòng. Lỗi này có từ khi tôi bắt đầu chuyển sang dùng chuỗi đầu vào trong form lưu trữ để tiện dụng.
Bạn có thể sửa như thế này nhé:
+ Bấm Alt+F11 (Bấm cả phím Alt và phím F11 cùng lúc)
+ Trong màn hình sửa code sẽ hiện ra, bạn chọn dấu cộng ứng với Dự án (Project) Functions(Functions.xla) tại cây dự án bên tay trái màn hình.
+ Chọn dấu cộng Forms
+ Nhấn kép vào đối tượng frmResources
+ Chọn nhãn (Label) lb_Unicode
+ Nhấn chuột thêm một lần chuột đơn vào nhãn này và nhấn Ctrl+End để về cuối nhãn.
+ Nhấn nút xóa Backspace cho đến khi gặp chữ Đ
+ Nhấn Ctrl+S để lưu lại
+ Excel sẽ thông báo là mất chữ ký của ứng dụng, không sao cả bạn có thể sử dụng công cụ một cách bình thường từ bây giờ.
Hoặc bạn có thể tải về từ liên kết tôi gửi trong mấy bài trước nhé.
Xin chân thành xin lỗi bạn
Private Function CheckUpperCase(theTxt As String) As Boolean
' Sửa lại ngày 27 Feb 2011 - cách mới
' Cách tiếp cận: tìm ký tự hoa bất kỳ ngay trước và sau ký tự trắng
Dim stCounter As Long, i As Long, InputString As String
' remove starting and trailing spaces
InputString = LTrim(RTrim(theTxt))
On Error GoTo errHandler
i = InStr(InputString, " ")
If i > 0 Then
' Nâng biến đếm cho trường hợp ký tự cuối cùng là chữ hoa
If Right(InputString, 1) Like "[A-Z]" Then stCounter = 1
' Kiểm tra chữ ngay trước dấu trắng
While stCounter < 2 And i > 0
If Mid(InputString, i - 1, 1) Like "[A-Z]" Then
' Chỉ kiểm tra ký tự sau dấu trắng nếu thỏa mãn điều kiện
stCounter = stCounter + 1
If Mid(InputString, i + 1, 1) = UCase(Mid(InputString, i + 1, 1)) Then stCounter = stCounter + 1
End If
If stCounter >= 2 Then
CheckUpperCase = True
Else
i = InStr(i + 1, InputString, " ")
End If
Wend
Else
' Không có dấu trắng nào trong chuỗi tham số, bây giờ áp dụng luật đếm ký tự dạng chữ Hoa
For i = Len(InputString) To 1 Step -1
If Mid(InputString, i, 1) = UCase(Mid(InputString, i, 1)) Then stCounter = stCounter + 1
If stCounter = 2 Then
CheckUpperCase = True
Exit For
End If
Next
End If
errHandler:
End Function