Office中国论坛/Access中国论坛

标题: 有什么方法,一次性去掉 excel 某一列中的所有标点符号吗? [打印本页]

作者: accsee使用中    时间: 2010-7-18 10:38
标题: 有什么方法,一次性去掉 excel 某一列中的所有标点符号吗?
excel中,某一个字段(列)中,含有很多不同的标点符号,除了使用逐个替换的方法外,还有什么方法,可以一次性的去掉所有的不同的标点符号啊?请高手帮忙!在此先感谢了!


作者: accsee使用中    时间: 2010-7-18 10:45
补充:在accsee中也有这种情况,请问如何解决啊?多谢!!
作者: todaynew    时间: 2010-7-18 11:23
知道这些符号的ASC码在什么区间就可以用循环替换的方法搞定。

作者: accsee使用中    时间: 2010-7-18 12:57
请问有具体的步骤吗?
作者: pureshadow    时间: 2010-7-18 18:28
请上传附件
http://www.office-cn.net/forum.p ... &extra=page%3D1

作者: accsee使用中    时间: 2010-7-18 21:24
有什么方法,一次性去掉 access或者excel 某一列中的所有标点符号吗?

附件中的例子供参考

作者: pureshadow    时间: 2010-7-18 23:21
可以转到WORD里用替换完成
感谢OFFICE SYSTEM MVP 宋翔 支持

作者: accsee使用中    时间: 2010-7-19 09:35
pureshadow 您好!您说的在Word中使用高级中的“使用通配符”,那么在查找内容里怎么写啊。多谢指点。上面有附件例子,可供参考使用


   
作者: 小菜    时间: 2010-7-19 14:54
pureshadow 您好!您说的在Word中使用高级中的“使用通配符”,那么在查找内容里怎么写啊。多谢指点。上面有 ...
accsee使用中 发表于 2010-7-19 09:35

7楼的pureshadow管管不是已经给出截图了吗



作者: 方漠    时间: 2010-7-20 11:48
本帖最后由 方漠 于 2010-7-20 11:53 编辑

可以写个自定义函数,把要去掉的特殊符号列举在清单上面就行了. 如下(全角符号不可辨认了,你自己列一下就行.):


Function RemoveSymbol(StrK As String) As String

'~!@#$%^&*()_-+=<>,.?/;:'"\|¡££¬£¡¡¤#£¤%¡­¡­¡ª*£¨£©£­¡ª£½+¡¶¡·£¬¡££»£º¡®¡°¡±¡¯¡¢|

'¡º¡»

StrK = Replace(StrK, "¡º", "")
StrK = Replace(StrK, "-", "")
StrK = Replace(StrK, "¡»", "")
StrK = Replace(StrK, "£º", "")
StrK = Replace(StrK, "¡°", "")
StrK = Replace(StrK, "¡±", "")
StrK = Replace(StrK, "*", "")
StrK = Replace(StrK, "¡¶", "")
StrK = Replace(StrK, "¡·", "")
StrK = Replace(StrK, "£¨", "")
StrK = Replace(StrK, "£©", "")
'.............. list all the symbol here with Replace Function
RemoveSymbol = StrK

End Function


此代码也可以在ACCESS VBA中直接使用.在QUERY里可以直接调用此函数.

作者: 方漠    时间: 2010-7-20 11:51
图片如下:


作者: todaynew    时间: 2010-7-21 17:46
本帖最后由 todaynew 于 2010-7-21 17:52 编辑
可以写个自定义函数,把要去掉的特殊符号列举在清单上面就行了. 如下(全角符号不可辨认了,你自己列一下就行. ...
方漠 发表于 2010-7-20 11:48

我查了一下asc码在-23648至-23632和-24159至-24000区间的为符号,这样可以用循环的方法解决。

Function RemoveSymbol(StrK As String) As String
dim i as long
for i=-32768 to -32193
  StrK=Replace(StrK,chr(i),"")
next
for i=-24159 to -24000
  StrK=Replace(StrK,chr(i),"")
next
Function

作者: 方漠    时间: 2010-7-22 09:25
嗯,这个思路也很不错,不过代码好像漏了一句,另外一些符号也没有去掉,如*?!之类的,可能还需要加多一个FOR.

Function RemoveSymbol(StrK As String) As String

Dim i As Long

For i = -32768 To -32193
  StrK = Replace(StrK, Chr(i), "")
Next

For i = -24159 To -24000
  StrK = Replace(StrK, Chr(i), "")
Next

RemoveSymbol = StrK

End Function




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3