切断一列中的所有非数字值

在Excel或VBA中有没有办法通过他的字符过滤单元格,然后将其插入到单独的列中?

例如,我的数据如下所示:

A3200,12 AB2000,32 -300,34 32567,32A 6745,21AB 500+ 

我想要的结果是这样的:

 Column A 3200,12 2000,23 300,34 32567,32 6745,21 500 Column B A AB - A AB + 

那么有没有办法去通过每个单元格,并切断所有非数字值这些并复制到另一列?

一种方法是创buildUDF(用户差异函数)。

将2个以下函数放入VBA模块中:

 Function Digits(s As String) As String With CreateObject("vbscript.regexp") .Pattern = "[^0-9,]" .Global = True Digits = .Replace(s, "") End With End Function Function NonDigits(s As String) As String With CreateObject("vbscript.regexp") .Pattern = "[0-9,]" .Global = True NonDigits = .Replace(s, "") End With End Function 

要使用这些函数:如果数据在单元格A1中,只需在单元格B1中键入公式

 =Digits(A1) 

并在单元格C1中:

 =NonDigits(A1) 

第一个将返回您的数据作为文本只包含数字。 要将其转换为数字,请使用VALUE函数。

第二个返回没有任何数字的数据。