|
所谓有意义字符串,是指至少包含一个空格、回车、分页……(可以自定义)以外的字符。
原版:- Private Function IsEmptyStr(ByVal s As String) As Boolean
- s = Replace(s, vbCr, "")
- s = Replace(s, Chr(1), "")
- s = Replace(s, Chr(12), "")
- s = Replace(s, Chr(21), "")
- s = Replace(s, " ", "")
- IsEmptyStr = s = ""
- End Function
复制代码 优点:代码容易想到和编写。
缺点:效率低,修改时麻烦。
改进版:- Private Function IsEmptyStr(ByVal s As String) As Boolean
- Dim i As Long
- Dim j As Byte
- Dim u As Byte
- Dim Ch As String * 1
- Dim bFound As Boolean
- Dim vInvalidChar As Variant
-
- vInvalidChar = Array(1, 7, 12, 13, 21, 32)
- u = UBound(vInvalidChar)
- IsEmptyStr = True
-
- For i = 1 To Len(s)
- bFound = False
- Ch = Mid$(s, i, 1)
- For j = 0 To u
- If Asc(Ch) = vInvalidChar(j) Then
- bFound = True
- Exit For
- End If
- Next j
- If Not bFound Then
- IsEmptyStr = False
- Exit For
- End If
- Next i
- End Function
复制代码 玩了那么多年的编程,对ASCII的不可见字符(32以下的)只了解0(空字符)、8(退格)、10(换行)、13(回车),直到刚才研究了Word VBA,才发现原来其他的控制字符就是用于word这类的富文本格式,例如1(标题开始)、12(换页)。 |
|