excel VBA提取工作表中单元格公式内容

来自:    更新日期:早些时候
EXCEL VBA 正则提取公式中的单元格?~

示例程序代码和执行结果如下图:

正则表达式:
r.Pattern = "[A-Z]{1,3}[1-9][0-9]{0,6}"
表示1-3个字母开始,接一个非0开始、最多7位的数字

如图,公式是:
=LEFT(A1,FIND("-",A1,LENB(A1)-5)-1)
注:该公式的前提条件是后尾戳“-xxxxx”最多5个X,如果是最多是6个
公式则更改为=LEFT(A1,FIND("-",A1,LENB(A1)-6)-1)


利用vba的自定义函数吧
在工作表界面作如下操作:
按Alt+F11->打开vixual basic编辑器
在打开的vixual basic编辑器窗口作如下操作:
标题栏->视图->工程资源管理器(单击打开)
插入-模块(这时会插入一个名称为“模块1”的模块)
右边出现一大片空白区域
将下述代码复制->粘贴进去:
Function Hasf(rng As Range)
If rng.HasFormula Then
Hasf = rng.Formula
Else
Hasf = ""
End If
End Function
'这样在工作表界面就可以直接用函数hasf了,跟excel内置函数一样使用
'如A2里有公式=IF(A1="","",A3+A4)
'那么B2里输入公式=hasf(A2) 确定即可

用单元格的Formula属性来获取。
如:x1=Range("A2").Formula

用VBA
x1=range("a1").formula


excel VBA提取工作表中单元格公式内容视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网