Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1935|回复: 3

[已解决]在数字上添加字符,请帮帮忙。

[复制链接]
发表于 2013-10-24 16:37 | 显示全部楼层 |阅读模式
    也许是本人表达的不是很清楚,请大家海涵。
    如附件所示,当B列等于"型号1"的时候,在"*"前的数字加上括号,变成(400)*300=5,当B列等于"型号1"的时候,在"="前的数字加上括号,变成3000*(300)=5。
  具体情况请看D列结果。
  我只是列举了两种情况,其余的还有很多,所以需要VBA来解决。
  跪求VBA代码,谢谢。
最佳答案
2013-10-24 18:43
本帖最后由 大灰狼1976 于 2013-10-24 18:46 编辑

正则还不太熟悉,试做了一个
  1. Sub aaa()
  2. Dim arr, i&, reg As Object, s$
  3. Set reg = CreateObject("vbscript.regexp")
  4. reg.Global = True
  5. arr = [a1].CurrentRegion
  6. For i = 2 To UBound(arr)
  7.   If arr(i, 2) = 1 Then
  8.     reg.Pattern = "^\d+"
  9.     s = "(" & reg.Execute(arr(i, 1))(0) & ")"
  10.     arr(i, 3) = reg.Replace(arr(i, 1), s)
  11.   ElseIf arr(i, 2) = 2 Then
  12.     reg.Pattern = "\d+="
  13.     s = "(" & Val(reg.Execute(arr(i, 1))(0)) & ")="
  14.     arr(i, 3) = reg.Replace(arr(i, 1), s)
  15.   End If
  16. Next i
  17. [a1].CurrentRegion = arr
  18. End Sub
复制代码

求助附件.rar

1.95 KB, 下载次数: 6

发表于 2013-10-24 16:41 | 显示全部楼层
那帖子中回的VBA不对吗?还是没看?
回复

使用道具 举报

 楼主| 发表于 2013-10-24 16:42 | 显示全部楼层
没得法呀,刚才没人解决啊。。。。。。。。。。
回复

使用道具 举报

发表于 2013-10-24 18:43 | 显示全部楼层    本楼为最佳答案   
本帖最后由 大灰狼1976 于 2013-10-24 18:46 编辑

正则还不太熟悉,试做了一个
  1. Sub aaa()
  2. Dim arr, i&, reg As Object, s$
  3. Set reg = CreateObject("vbscript.regexp")
  4. reg.Global = True
  5. arr = [a1].CurrentRegion
  6. For i = 2 To UBound(arr)
  7.   If arr(i, 2) = 1 Then
  8.     reg.Pattern = "^\d+"
  9.     s = "(" & reg.Execute(arr(i, 1))(0) & ")"
  10.     arr(i, 3) = reg.Replace(arr(i, 1), s)
  11.   ElseIf arr(i, 2) = 2 Then
  12.     reg.Pattern = "\d+="
  13.     s = "(" & Val(reg.Execute(arr(i, 1))(0)) & ")="
  14.     arr(i, 3) = reg.Replace(arr(i, 1), s)
  15.   End If
  16. Next i
  17. [a1].CurrentRegion = arr
  18. End Sub
复制代码

求助附件.zip

6.59 KB, 下载次数: 4

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 06:17 , Processed in 0.412028 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表