我正在寻找Macro&中以下2个实例的帮助也作为一个公式。必须提取包括逗号
在内的数字Situation1: 单元格A1
C160516XXX的 164614722,65
思考我们是否可以通过从右边读取并直到出现字母/字符来提取数字
Situation2:
Cell B1
1605080506C的 91244,22 FDEC20160413000488 // 4261997 / XXXX / XXXXXXX / XXX / US98268242
是否可以提取隐藏在第一个和第二个字母/字符之间的数字?
答案 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)