切断一列中的所有非数字值
在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函数。
第二个返回没有任何数字的数据。