|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 /:+锋利 于 2013-4-19 17:26 编辑
想做一个用户窗体输入数据的表,现在遇到麻烦,请高人指教:
'要求:
' 在用户窗体UserForm1中的textbox1中录入身份证号,首先对这个身份证号进行
'验证,如果不符合身份证号的编码规则,则用msgbox提示身份证号错误,正确则将这个身
'份证号与sheet3第四列中身份证号进行比对,如果sheet3中没有,则弹出UserForm3
'提示该身份证没有进入系统,是否新增,如果选择“新增”,则将相应textbox中的
'内容输入sheet1中的相应单元格,如果选择“取消”,则清空录入框,重新输入数据,如果
sheet3的d列中有,则将身份证号写入sheet1的c列第一个空单元格中,并将sheet3中相应行的姓名
写入sheet1中的姓名列,缴费金额写入相应sheet1中的单格
Private Sub CommandButton1_Click()
m = Sheets(3).Range("d65536").End(xlUp).Row '获取sheeet3最后非空单元格的行号
n = Sheets(1).Range("c65536").End(xlUp).Row '获取sheeet1最后非空单元格的行号
For I = 2 To m
If TextBox1 = "" Then
MsgBox "没有数据"
Sheets(1).Cells(n + 1, 4) = ""
Sheets(1).Cells(n + 1, 1) = ""
End If
If TextBox1 <> Sheets(3).Cells(I, 4).Value Then
UserForm3.Show
ElseIf TextBox1 = Sheets(3).Cells(I, 4).Value Then
UserForm3.Hide
Sheets(1).Cells(n + 1, 1) = "PLJF"
Sheets(1).Cells(n + 1, 2) = Sheets(3).Cells(I, 3)
Sheets(1).Cells(n + 1, 3) = Sheets(3).Cells(I, 4)
If TextBox2 = "" Then
Sheets(1).Cells(n + 1, 4) = "2013"
Else
Sheets(1).Cells(n + 1, 4) = TextBox2
End If
Sheets(1).Cells(n + 1, 5) = TextBox3
End If
Next
End Sub
在循环中msgbox和userform无法关闭
附身份证验证代码
Private Sub CommandButton2_Click()
n =textbox1
wi = Array("7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2") '设置加权数组
y = Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2") '设置校验码数组
For h = 0 To 16
r = Mid(n, h + 1, 1)
If IsNumeric(r) = False Then '校验前17位输入字符是否为数字
MsgBox " 身份证号码不为18位"
Exit Sub
End If
s = s + r * wi(h)
Next h
t = s Mod 11
If UCase(Mid(n, 18)) = y(t) Then '转换为大写后校验,如为数字则不变
MsgBox " 身份证号码正确"
Else
MsgBox " 身份证号码不正确"
End If
End Sub
|
|