Access 2010 vba - 从 excel 数字、字母或空格导入
Access 2010 vba - import from excel numbers, letters or blank spaces
我对 vba 还是个新手。我有一个数据库,在其他人的帮助下,我终于能够在导入时进行验证检查。但是,我可以用数字作为文本来完成检查,但是如果我需要字母字符或者单元格是空白的,我就会被卡住。这就是我将数字作为文本所拥有的。我需要两项检查:1) 接受字母数字或空白(空)和 2)数字或空白(空)。
Function chk2(A As String) As Boolean
Dim i As Integer, l As Integer, c As String
l = Len(A)
If l = 4 Then
chk2 = True
For i = 1 To l
c = Mid(A, i, 1)
If Not (c >= "0" And c <= "9") Then
chk2 = False
Exit Function
End If
Next i
End If
End Function
只要每个 row/cell 都有字符要填写,这个就可以正常工作。
预先感谢您的帮助。
如果您要 return 一个布尔值,如果一切都正确执行,您应该只 return 一个真值,这样如果某些事情失败了,您就不会得到误报。
您可以检查单元格的空白单元格长度是否为 0,即如果 Len = 0
您在 If Not 语句中所做的是检查 c 的 ascii 值是否在 0 和 9 的 ascii 值之间,因此您可以使用 or 语句来检查它是否在 a 和 z 或 A 和 Z 之间,或者是否存在space 这是字符 32 - Chr(32) :
Function chk2(A As String) As Boolean
Dim i As Integer, l As Integer, c As String
chk2 = false
l = Len(A)
If l = 0 then
'do something if the cell is blank
chk2 = true
ElseIf l = 4 Then
For i = 1 To l
c = Mid(A, i, 1)
If Not ((c >= "0" And c <= "9") Or (c >= "a" And c <= "z") Or (c >= "A" And C <= "Z") Or c = Chr(32)) Then
Exit Function
End If
Next i
chk2=true
End If
End Function
我对 vba 还是个新手。我有一个数据库,在其他人的帮助下,我终于能够在导入时进行验证检查。但是,我可以用数字作为文本来完成检查,但是如果我需要字母字符或者单元格是空白的,我就会被卡住。这就是我将数字作为文本所拥有的。我需要两项检查:1) 接受字母数字或空白(空)和 2)数字或空白(空)。
Function chk2(A As String) As Boolean
Dim i As Integer, l As Integer, c As String
l = Len(A)
If l = 4 Then
chk2 = True
For i = 1 To l
c = Mid(A, i, 1)
If Not (c >= "0" And c <= "9") Then
chk2 = False
Exit Function
End If
Next i
End If
End Function
只要每个 row/cell 都有字符要填写,这个就可以正常工作。 预先感谢您的帮助。
如果您要 return 一个布尔值,如果一切都正确执行,您应该只 return 一个真值,这样如果某些事情失败了,您就不会得到误报。 您可以检查单元格的空白单元格长度是否为 0,即如果 Len = 0 您在 If Not 语句中所做的是检查 c 的 ascii 值是否在 0 和 9 的 ascii 值之间,因此您可以使用 or 语句来检查它是否在 a 和 z 或 A 和 Z 之间,或者是否存在space 这是字符 32 - Chr(32) :
Function chk2(A As String) As Boolean
Dim i As Integer, l As Integer, c As String
chk2 = false
l = Len(A)
If l = 0 then
'do something if the cell is blank
chk2 = true
ElseIf l = 4 Then
For i = 1 To l
c = Mid(A, i, 1)
If Not ((c >= "0" And c <= "9") Or (c >= "a" And c <= "z") Or (c >= "A" And C <= "Z") Or c = Chr(32)) Then
Exit Function
End If
Next i
chk2=true
End If
End Function