实例需求: 数据保存在B列,其格式为规格1*数量1+规格2*数量2+ ... 现在需要统计数量总和,如C列所示。 例如B3中明细为100*3+115*1对应的包装个数就是3+1。 示例代码如下。
【代码解析】 第5行代码使用后期绑定创建正则对象。 第6行代码指定正则匹配字符串。 第7行代码设置为全局搜索模式。 第9行代码使用正则替换,将匹配成功的字符串替换为空。 第10行代码利用工作表的函数Evaluate计算替换后的字符串表达式的值,并写入工作表中。 例如B7单元格内容如下,红色部分字符为正则匹配字符(包含星号),替换之后就成为简单的算式2+1+2,即使没有等号,也可以被函数Evaluate正确处理。 如果使用VBA的字符串函数实现这个需求,就需要多次使用Split和Instr进行处理,示例代码使用正则替换,代码就很简洁了。 作者:taller 微软全球最有价值专家 ExcelHome技术论坛VBA版块版主 EH论坛VBA系列图书主创人 |
|
来自: asaser > 《VBA正则表达式》