Có thể dùngEm xin được hỏi trong VBA sử dụng hàm Istext như nào ạh?
Xin cám ơn
Sub test()
If Not Intersect([F3:F20000], Target) Is Nothing Then
If Target <> "" And VAT_check(Target) = False Then
MsgBox "Wrong Tax code" & Chr(13) & "Please key correctly"
End If
End If
End Sub
Bạn xem lại chứ tôi thấy UDF này báo lổi đấy!Hàm check_VAT là em thảm khảo của anh Bình (Ác)PHP:Function VAT_check(mst1 As String) As Boolean Dim mst As String Dim skt As Integer If Len(mst1) < 10 Then VAT_check = False Else mst = Mid(mst1, 1, 10) If IsNumeric(mst) Then msttext = Format(mst, "0000000000") Else msttext = mst End If skt = CDbl(Mid(msttext, 1, 1)) * 31 skt = skt + CDbl(Mid(msttext, 2, 1)) * 29 skt = skt + CDbl(Mid(msttext, 3, 1)) * 23 skt = skt + CDbl(Mid(msttext, 4, 1)) * 19 skt = skt + CDbl(Mid(msttext, 5, 1)) * 17 skt = skt + CDbl(Mid(msttext, 6, 1)) * 13 skt = skt + CDbl(Mid(msttext, 7, 1)) * 7 skt = skt + CDbl(Mid(msttext, 8, 1)) * 5 skt = skt + CDbl(Mid(msttext, 9, 1)) * 3 VAT_check = (CDbl(Mid(msttext, 10)) = 10 - skt Mod 11) End If End Function
Còn công nhận là em chỉ copy một đoạn code bị lỗi này ra thôi, nhưng về mặt code em thấy đủ rồi chứ
code đang chạy và dừng tại chữ target này VAT_check(ByVal Target)
Hi
Private Sub Worksheet_Change(ByVal Target As Range)
Application.DisplayAlerts = False
If Not Intersect([F3:F20000], Target) Is Nothing Then
If Target <> "" And VAT_check(Target) = False Then
'MsgBox "Wrong Tax code" & Chr(13) & "Please key correctly" '
End If
End If
Application.DisplayAlerts = True
End Sub
'---------------------------------------------------'
Function VAT_check(mst1 As String) As Boolean
Dim mst As String
Dim skt As Integer
If Len(mst1) < 10 Then
VAT_check = False
Else
mst = Mid(mst1, 1, 10)
If IsNumeric(mst) Then
msttext = Format(mst, "0000000000")
Else
msttext = mst
End If
skt = CDbl(Mid(msttext, 1, 1)) * 31
skt = skt + CDbl(Mid(msttext, 2, 1)) * 29
skt = skt + CDbl(Mid(msttext, 3, 1)) * 23
skt = skt + CDbl(Mid(msttext, 4, 1)) * 19
skt = skt + CDbl(Mid(msttext, 5, 1)) * 17
skt = skt + CDbl(Mid(msttext, 6, 1)) * 13
skt = skt + CDbl(Mid(msttext, 7, 1)) * 7
skt = skt + CDbl(Mid(msttext, 8, 1)) * 5
skt = skt + CDbl(Mid(msttext, 9, 1)) * 3
VAT_check = (CDbl(Mid(msttext, 10)) = 10 - skt Mod 11)
End If
End Function
If Not Intersect([F3:F20000], Target) Is Nothing Then
If Target <> "" And VAT_check(Range("F:" & Target.Row)) = False Then
MsgBox "Wrong Tax code" & Chr(13) & "Please key correctly"
End If
End If
Function VAT_check(mst1 As String) As Boolean
Dim mst As String
Dim skt As Integer
[COLOR=red]Dim msttext[/COLOR]
If Len(mst1) < 10 Then
VAT_check = False
Else
mst = Mid(mst1, 1, 10)
If IsNumeric(mst) Then
msttext = Format(mst, "0000000000")
Else
msttext = mst
End If
skt = CDbl(Mid(msttext, 1, 1)) * 31
skt = skt + CDbl(Mid(msttext, 2, 1)) * 29
skt = skt + CDbl(Mid(msttext, 3, 1)) * 23
skt = skt + CDbl(Mid(msttext, 4, 1)) * 19
skt = skt + CDbl(Mid(msttext, 5, 1)) * 17
skt = skt + CDbl(Mid(msttext, 6, 1)) * 13
skt = skt + CDbl(Mid(msttext, 7, 1)) * 7
skt = skt + CDbl(Mid(msttext, 8, 1)) * 5
skt = skt + CDbl(Mid(msttext, 9, 1)) * 3
VAT_check = (CDbl(Mid(msttext, 10)) = 10 - skt Mod 11)
End If
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
Application.DisplayAlerts = False
If Not Intersect([F3:F20000], Target) Is Nothing Then
If Target <> "" And VAT_check(Target.Text) = False Then
MsgBox "Wrong Tax code" & Chr(13) & "Please key correctly"
End If
End If
Application.DisplayAlerts = True
End Sub