1、从网站导出的Excel文件单元格内容后面多了一个不可见字符,怎么造成的不知道,但不是每一列都有。想要用VBA代码去掉,就要先判断出是什么字符,将内容复制到文本环境中(比如编程环境或者UltraEdit中),发现最后面那个是个“?”,Asc()函数取其码值也是63,但奇怪的是截取这个字符和“?”或者Chr(63)相比,发现并不相等。
2、实际情况这个字符应该不是“?”,复制到记事本中,字符依然不可见,保存文件,提示包含Unicode字符(如下图),如果继续按ANSI编码格式保存,再打开这个文件发现最后面的那个字符就被转换成了“?”。但如果按Unicode格式保存,再打开这个文件则发现这个字符依然不可见,可见是原样保存的,用UltraEdit打开查看码值,发现是0x00A0,即160。
3、想要去掉这个字符不是很难,因为我们导出内容最后不会有“?”存在,所以用Asc()函数取值,只要是63,就去掉最后一个字符。如下:
If Asc(Right(MyRecord(j), 1)) = 63 Then MyRecord(j) = Left(MyRecord(j), Len(MyRecord(j)) - 1)
4、那么这个字符到底是什么呢?通过下面代码可以判断其内码值是160:
For kk = 1 To 65535
If Right(MyRecord(j), 1) = ChrW(kk) Then
&nbs