|
' 复杂函数(数组函数)在VBA里面如何写
' ①一般方法:application.worksheetfunction.函数名;
' ②简单的方法:application.Evaluate ("工作表中的公式"):
' ⑴如果是普通公式,就把去除等号后的部分复制到程序中;如果是数组公式,就把去除等号和大括号的部分复制到程序中;
' ⑵公式中需要用引号引起的文本,在VBA中需要在两边加两个引号(""文本"");
' ⑶在公式中插入变量:" & 变量 & "
' 如果是要在单元格中显示公式,则是
' Range("a1") = "=SUMPRODUCT(SUBTOTAL(102,OFFSET(B6,ROW(1:6800),))*B7:B6806*(N7:N6806>0)*(M7:M6806<>"""")"
' 如果是要单元格中显示公式的计算结果,则是
' range("a1")=Evaluate(="SUMPRODUCT(SUBTOTAL(102,OFFSET(B6,ROW(1:6800),))*B7:B6806*(N7:N6806>0)*(M7:M6806<>"""")")
' 在准备本周V预课课件时,涉及到了VBA中使用函数,特别是利用函数进行数组运算时的情况,虽然是老问题了,觉得还是有必要和非本班会员进行分享。
' 格式:
' Appllication,Evalute("数组公式内容"),括号内为公式内容
' 示例:
' {=sum(a1:a3+10)} 在VBA中可以写成
' Application.Evaluate ("sum(a1:a3+10)")
' =SUMPRODUCT((A1:A3>0)*(B1:B3="c")) 在VBA中可以写成
' Application.Evaluate ("=SUMPRODUCT((A1:A3>0)*(B1:B3=""c""))")
' 注:公式在含有引号时,引号数量要加倍
|
|