String 处理字符串中的特殊字符

String 处理字符串中的特殊字符,string,vba,excel,character,special-characters,String,Vba,Excel,Character,Special Characters,我正在下载一些文件,这些文件有时有一些中文字符,显然String无法识别它们 关于如何告诉VBA以下内容的任何想法: 如果文件名中有一些未知字符,则删除它们,并仅保留文件名的第一部分,其中包含正常字符 实际上,这些特殊字符中的每一个都将被替换为“?” 但问题是Msgbox-AttachmentName将返回0,即使Msgbox-AttachmentName将显示一些“?” 我做了以下操作,但正如我上面所说的,“?”显示在MsgBox上,但并不真实,因此它永远不满足条件 If InStr(1, A

我正在下载一些文件,这些文件有时有一些中文字符,显然
String
无法识别它们

关于如何告诉VBA以下内容的任何想法:

如果文件名中有一些未知字符,则删除它们,并仅保留文件名的第一部分,其中包含正常字符

实际上,这些特殊字符中的每一个都将被替换为“?”

但问题是
Msgbox-AttachmentName
将返回0,即使
Msgbox-AttachmentName
将显示一些“?”

我做了以下操作,但正如我上面所说的,“?”显示在
MsgBox
上,但并不真实,因此它永远不满足条件

If InStr(1, AttachmentName, "?") <> 0 Then
     AttachmentName = Mid(AttachmentName, 1, InStr(1, AttachmentName, "?") - 1) & "unknown characters "
End If
如果InStr(1,附件名称“?”)为0,则
AttachmentName=Mid(AttachmentName,1,InStr(1,AttachmentName,“?”)-1)和“未知字符”
如果结束

此子项删除字符串中的所有汉字

Private Sub RemoveChinese()

    Dim Fun As String
    Dim Txt As String
    Dim Ch As String
    Dim n As Integer

    Txt = Selection.Text

    For n = 1 To Len(Txt)
        Ch = Mid(Txt, n, 1)
        If Asc(Ch) = AscW(Ch) Then Fun = Fun & Ch
    Next n

    MsgBox Fun
End Sub

关键是汉字用2个字节表示,而拉丁字符只需要一个字节。您必须在计算机上安装中文支持,才能实际描述它们。因此,为无法识别的字符插入了

此子项将删除字符串中的所有汉字

Private Sub RemoveChinese()

    Dim Fun As String
    Dim Txt As String
    Dim Ch As String
    Dim n As Integer

    Txt = Selection.Text

    For n = 1 To Len(Txt)
        Ch = Mid(Txt, n, 1)
        If Asc(Ch) = AscW(Ch) Then Fun = Fun & Ch
    Next n

    MsgBox Fun
End Sub

关键是汉字用2个字节表示,而拉丁字符只需要一个字节。您必须在计算机上安装中文支持,才能实际描述它们。因此,为无法识别的字符插入了

我建议让变量名更具描述性,特别是在将来有人遇到此问题时。即使知道您在做什么,也很难遵循示例的逻辑,因为读者从
Ch
from
Txt
(就他们的目的而言)中不知道
Fun
。我建议您的变量名更具描述性,特别是在将来有人遇到此问题的情况下。即使知道您在做什么,也很难遵循示例的逻辑,因为读者不知道
Ch
from
Txt
(就他们的目的而言)。