2009-05-29 32 views
1

串的专栏中,我想解析在Excel VBA中的字符串单元列,各小区中包含以下内容:解析使用VBA

2 '␂' 

我想这个单元格的内容改变只包含2个字符(或'string'前面的任何数字字符)。解析这些信息的最简单方法是什么?谢谢。

+0

http://stackoverflow.com/questions/924717/excel-finding-and-removing-some-characters-in-a-column-of-data的重复?? – barrowc 2009-05-30 00:07:43

+0

这是一个单独的问题,源于我早先在barrowc的主题上询问的问题。 – stanigator 2009-05-30 04:30:44

回答

2

如果您确定格式,请在'(撇号)前找到字符串&更改单元格值 假设您位于具有此值的单元格上,请使用以下VBA代码:

activecell.text = mid(activecell.text, 1, instr(1, activecell.Text, "'")-1)

它寻找一个撇号,并提取字符它&把它放到当前单元格之前。

0

假设数值数据总是在单元格的起始位置,您可以使用正则表达式在字符串开头找到任何连续的数字,一旦它遇到第一个非数字字符就停下来。这是一个可以为你做的功能,我希望它有帮助。 ^表示单元格的开始,(\ d +)表示一个或多个数字字符,。*表示后跟零个或多个字符。我假设只有一串你需要的数字,所以我有正则表达式返回子匹配0(第一次匹配)。

Function ExtractNumericData(ByVal text As String) As String 

Application.ScreenUpdating = False 
Dim allMatches As Object 
Dim RE As Object 
Set RE = CreateObject("vbscript.regexp") 

RE.Pattern = "^(\d+).*" 
RE.Global = True 
Set allMatches = RE.Execute(text) 
ExtractNumericData = allMatches.Item(0).submatches.Item(0) 
Application.ScreenUpdating = True 

End Function