从String - Macro / Excel中提取数字

时间:2016-05-27 14:08:04

标签: string excel-vba macros numbers extract

我正在寻找Macro&中以下2个实例的帮助也作为一个公式。必须提取包括逗号

在内的数字

Situation1: 单元格A1

  

C160516XXX的 164614722,65

思考我们是否可以通过从右边读取并直到出现字母/字符来提取数字

Situation2:

Cell B1

  

1605080506C的 91244,22 FDEC20160413000488 // 4261997 / XXXX / XXXXXXX / XXX / US98268242

是否可以提取隐藏在第一个和第二个字母/字符之间的数字?

2 个答案:

答案 0 :(得分:0)

你有正确的想法。对于情境1,向后循环直到遇到非数字字符。使用IsNumeric(Mid(str, index, 1))获取1个字符的字符串并测试它是否为数字。然后,存储迭代次数n直到找到值。使用Right(str, n)获取字符串最后n个字符的子字符串。

对于情境2,循环前进,存储第一个和第二个非数字字符{(1}}和x1的索引。然后,使用x2获取第一个和第二个非数字字符之间的子字符串。

以下是一个示例VBA实现,它将您的答案放在C1和D1中:

Mid(str, x1+1, x2-x1-1)

仅供参考,大多数人都不会给你一个完整的代码实现,但我没有更好的事情要做。也可能有Excel命令解决方案,但它们通常不会处理"字符类" (非数字但不是逗号)。我建议使用此代码作为模板来考虑未来的VBA解决方案。我在这里向您展示如何访问单元格,循环数据和编写条件语句。请在线进行一些研究,以便更熟悉。

答案 1 :(得分:0)

对于

C160516XXX的 164614722,65

您可以使用Excel公式,例如MID()SEARCH()可以合并为您提供以下结果。

<强> 164614722,65

将其放在您想要结果=MID(A1,SEARCH("xxx",A1,1)+3,SEARCH("xxx",A1,1)+100)

的位置