Excel精英培训网

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

[已解决]怎么把其中的单元格H23和AA145提取出来?

[复制链接]
发表于 2015-3-6 17:29 | 显示全部楼层 |阅读模式
本帖最后由 非池中 于 2015-3-6 17:32 编辑

比如有一个公式(H23+AA145)\3
怎么把其中的单元格H23和AA145提取出来?


最佳答案
2015-3-7 09:36
假如公式在A1
  1. Sub Macro1()
  2.     [a1] = "=(H23+AA145)/3"
  3.   For Each m In [a1].DirectPrecedents
  4.     MsgBox m.Address(0, 0)
  5.   Next
  6. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-3-6 18:25 | 显示全部楼层

做个附件上来模拟好结果,
多提供一些数据方便找出共同规律。

只有一个数据特殊性很大,
给你做出来了也不一定适用其他数据。
回复

使用道具 举报

发表于 2015-3-6 21:29 | 显示全部楼层
回复

使用道具 举报

发表于 2015-3-7 09:36 | 显示全部楼层    本楼为最佳答案   
假如公式在A1
  1. Sub Macro1()
  2.     [a1] = "=(H23+AA145)/3"
  3.   For Each m In [a1].DirectPrecedents
  4.     MsgBox m.Address(0, 0)
  5.   Next
  6. End Sub
复制代码
回复

使用道具 举报

发表于 2015-3-8 10:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2015-3-9 08:23 | 显示全部楼层
dsmch 发表于 2015-3-7 09:36
假如公式在A1

果然高手,轻而易举搞定,我原以为得用循环加正则表达式解决,领教了。
回复

使用道具 举报

 楼主| 发表于 2015-3-9 10:39 | 显示全部楼层
dsmch 发表于 2015-3-7 09:36
假如公式在A1

还想问一下,如果是“xx表!D2”这样的格式就会出错,我用replace把"xx表!“替换掉再把公式剩下的部分放到某个单元格里,再用你的办法也能得到结果”D2“,可是有没有办法直接得到"D2"?谢谢
回复

使用道具 举报

发表于 2015-3-9 14:47 | 显示全部楼层
正则表达式
  1. Sub Macro1()
  2. With CreateObject("vbscript.regexp")
  3.     .Pattern = "[A-Z]+\d+"
  4.     .Global = True
  5.     For Each m In .Execute(Range("a1").Formula)
  6.         MsgBox m
  7.     Next
  8. End With
  9. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-3-9 16:33 | 显示全部楼层
dsmch 发表于 2015-3-9 14:47
正则表达式

开眼了,原来还可以这样做。

非常感谢!完美解决我的问题。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 16:02 , Processed in 0.847687 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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