Vba 字符串上的空格不是空格
我在Excel中有一个从outlook粘贴的单元格。当我读入它时,它上面有一些空格,我需要删除。 我花了几个小时才找到解决办法把它去掉 我试过:Vba 字符串上的空格不是空格,vba,string,excel,space,Vba,String,Excel,Space,我在Excel中有一个从outlook粘贴的单元格。当我读入它时,它上面有一些空格,我需要删除。 我花了几个小时才找到解决办法把它去掉 我试过: Replace(字符串值,”,“”)并且没有删除空格 应用程序。查找(“,字符串\u值)并返回错误 Application.trim(字符串\u值)并且没有删除空格 我的解决方案: string_value = Replace(Str(string_value), " ", "") 有人知道原因吗?Outlook电子邮件可以以两种方式编写: 1
并且没有删除空格Replace(字符串值,”,“”)
并返回错误应用程序。查找(“,字符串\u值)
并且没有删除空格Application.trim(字符串\u值)
string_value = Replace(Str(string_value), " ", "")
有人知道原因吗?Outlook电子邮件可以以两种方式编写: 1) 纯文本 2) HTML(用于允许颜色、布局等) 您可能会遇到第二种情况,因为不能以纯文本模式插入表,当您获得变量
string\u value
的值时,您会得到完整的HTML字符串
事实上,Outlook将您的身体转换为HTML格式,允许您从任何邮件服务器查看身体(HTML是国际web语言,任何浏览器都可以统一或几乎完全阅读)。这意味着,字符空间将不再是”
,而是它的HTML等价物,即
(或者其他,我不知道是否有特征线,我不是真正的HTML专家)
因此,当您使用上述三种方法中的一种时,它们都无法找到“可视空间”,或者更好的是字符串
“
”。但是,当您使用函数Str()
时,HTML字符串将被重新转换为VBA语言(即
或等效字符串将在“
中转换,因此您的方法将起作用。这是因为该语句:
string_value = Replace(Str(string_value), " ", "")
做几件事。通常str()接受一个长参数。因为您给它一个字符串,VBA(在后台)将该字符串转换为长参数。在这样做时,它会丢弃任何垃圾字符(非数字),如CHR(160)。str()将结果填充为空白,而Replace()将删除 使用:
Replace(字符串\值,字符(160),“”)
你能告诉我们你的字符串值的定义吗?
变量的定义吗?我有一个想法,但我需要确认一下。@Ruberduck说得有道理,如果我的想法和他的想法一样,我想你得到的是一个完整的HTML字符串。请参阅我的答案,了解更多关于我认为是怎么回事的详细信息。如果你能告诉我们你是如何分配的,那就太好了变量的值。