To AverAC chúc mừng bạn đã có một chương trình rất hữu dụng và khá hoàn chỉnh, khi nào có phiên bản mới gửi mình một bản nhé.
Với v2.0, mình có một số ý kiến như sau:
1) Khi chọn vùng tới và từ Y trở đi chương trình báo lỗi 1004, có thể do lệnh Range(toletter(i) & ss(j)) chưa chính xác.
2) Với một vùng khá lớn người dùng phải đợi một khoảng thời gian khá lâu mới làm tiếp công việc được.
3) Bạn viết thêm lệnh trong Option "Code of source", tự động xác định loại Code của font trong vùng lựa chọn hiện thời để tránh sự hiểu nhầm về font dẫn tời việc Convert không đạt được kết quả.
Bạn xem lại cách gán biến CF hình như lỗi?
Để khắc phục nhược điểm 1,2) và đơn giản hoá sự phức tạp, trong một số Sub viết lại thành:
Sub Rangeconvert()
Dim oCell As Range
UserForm1.Show
For Each oCell In Selection
DoEvents
oCell = ConvertFont(oCell)
Next
If cf Then Selection.Font.Name = "Arial"
End Sub
'======================
Function ConvertFont(ByRef oCell As Range) As String
Select Case kc
Case 4
ST = VNItoTCVN3(oCell.Value)
Case 5
ST = UNICODEtoTCVN3(oCell.Value)
Case 6
ST = TCVN3toVNI(oCell.Value)
Case 8
ST = UNICODEtoVNI(oCell.Value)
Case 9
ST = TCVN3toUNICODE(oCell.Value)
Case 10
ST = VNItoUNICODE(oCell.Value)
End Select
ConvertFont = ST
End Function
'========
Private Sub UserForm_Activate()
kc = 0
cf = CheckBox1.Value
tf = ActiveCell.Font.Name
If Left(tf, 3) = "VNI" Then
OptionButton2.SetFocus
Else
OptionButton3.SetFocus
End If
If Left(tf, 1) = "." Then OptionButton1.SetFocus
End Sub
Chúc OverAC xớm có phiên bản mới!
Một số người quen dùng những cái sãn có không biết có phải trả ít tiền nào không? Chúng ta nên khuyến khích những người biết chủ động sáng tạo làm ra các công cụ cho chính mình.