EXCEL宏如何引用工作表中的公式

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:56:40
如题:宏中定义一个变量aa,aa的值就等于这个公式的结果=TODAY()-(MID($B$10,1,4)&"-"&MID($B$10,5,2)&"-"&MID($B$10,7,2)) 这个公式是放在sheet1表的A1单元格中,但是我不想用aa=sheets("sheet1").range("a1")
要让变量式直接通过公式得到结果,而不是引用公式所在的单元格得到结果,该怎么做?恳请各位大侠指点一二,谢谢!
我估计后面的三位朋友的答案都是正确的,其实大家猜的都没错,这是自己设计的出生证模板,想让出生日期到打印日期的时间超过90天要提示,B10单元格放的是日期加时间如:200901091430 晚上去试下.先谢谢你们.

如果你想直接引用B10单元格的数据(不带“-”号的日期数据),而不通过引用A1单元格的值,这可写成:
ActiveWorkbook.Sheets("sheet1").Select
aa = DateDiff("D", Mid(Range("B10"), 1, 4) & "-" & Mid(Range("B10"), 5, 2) & "-" & Mid(Range("B10"), 7, 2), Date)

看你的用意,是想计算日期吧
如果是想计算相差天数的话,则可改为
aa = abs(DateDiff("d", Date,Mid(cells(10,2),1,4) & "-" & Mid(Cells(10,2),5,2) & "-" & Mid(Cells(10,2),7,2)))
或者
aa = abs(DateDiff("d",Date, mid(Range("B10"),1,4) & "-" & Mid(Range("B10"),5,2) & "-" & Mid(Range("B10"),7,2))

有时需要直接调用EXCEL的函数的话,则可以使用WorksheetFunction语句,如需要调用计算平均数函数:
cc = WorksheetFunction.Average(Range("B2:B6"))

可以改为:
aa=Date - (Mid(Range("B10"), 1, 4) - Mid(Range("B10"), 5, 2) - Mid(Range("B10"), 7, 2))

关注一下。
我估计线索在这几个函数和属性中,你试试
FormulaR1C1,Formula