VBA基础
access代码英文标点变成中文标点符号
2013-10-10 16:07:17

    在编写代码的工程中,我们发现经常有些莫名的错误。往往找很长时间,还是没有答案。有时就是因为一个符号而影响的。     由于中英文标点是不同的,经常在写代码的时候用中文代替了。或者有时我们需要的时中文标点,在输入的时候却出来英文。     下面的函数就是帮我们把字符串中的英文替换成中文标点。而中文标点替换英文标点自己下去慢慢参详了。     常规标点好办点,单引用与双引号有点困难

    Private Function enTozhMark(ReplaceStr As String) As String     '把传递进来的字符串中的英文标点符号替换成中文标点符号     Const enStr As String = ",.?;:!()"     Const zhStr As String = ",。?;:!()"     Dim I As Byte, L As Integer, B As Boolean, N As Integer          enTozhMark = ReplaceStr     '替换常规标点符号     For I = 1 To 8         enTozhMark = Replace(enTozhMark, Mid(enStr, I, 1), Mid(zhStr, I, 1))     Next I     '替换双引号     N = 0: B = False     L = Len(enTozhMark)     For I = 1 To L         N = InStr(N + 1, enTozhMark, Chr(34))         If N <> 0 Then             I = N             If B = False Then                 enTozhMark = Left(enTozhMark, N - 1) & "“" & Mid(enTozhMark, N + 1)             Else                 enTozhMark = Left(enTozhMark, N - 1) & "”" & Mid(enTozhMark, N + 1)             End If             B = Not B         Else             Exit For         End If     Next I     '替换单引号     N = 0: B = False     For I = 1 To L         N = InStr(N + 1, enTozhMark, Chr(39))         If N <> 0 Then             I = N             If B = False Then                 enTozhMark = Left(enTozhMark, N - 1) & "‘" & Mid(enTozhMark, N + 1)             Else                 enTozhMark = Left(enTozhMark, N - 1) & "’" & Mid(enTozhMark, N + 1)             End If             B = Not B         Else             Exit For         End If     Next I        End Function