作者:乔山办公网日期:
返回目录:excel表格制作
d = (1990 - [D5] * a - [D6] * b-[D7]*c) / [D8]
Excel内置的工作表函数可以应用在VBA代码中,但是不能通过录制宏实现;只能根据实际需要编写代码进行调用。
在VBA宏中调用工作表函数的语法如下:
Application.WorksheetFunction.工作表函数名称(参数1,参数2,。copy。。)
例如:Application.WorksheetFunction.Sum(Range("A1:A10")) '代码的作用就是调用工作表函数SUM对单元格区域"A1:A10"进行加和计算。
① 在上面的例子中除了调用方式不同,单元格的表示也不同。例如正常在工作表使用百SUM函数表达式为:Sum(A1:A10);在VBA中调用时就要写成: Sum(Range("A1:A10"))。除了这两点,函数的运算规则和在工作表使用时基本是一样的。
② 需要注意的是:并不是所用的工作表函数都可以被VBA调用的,比如Sqrt,IF,Abs,Rows,Columns,Left,Right等等一部分函数是不能调用的,因为VBA本身提供了相度同功能的函数;可以在VBE界面中按F2查看具体哪些函数可以被调用:
用 Cells(行号,列号) 来获取单元格的值
用 & 号连接几个单元格值
用FOR循环一下
将连接好的值赋值给数组
再在SHEET2输出数组即可
用宏写通用公式
,有抄一个办法就是改成R1C1模式,这时的公式通用性极知强!
Cells(a, 6) = "=ISNUMBER(--LEFT(RC[-2],3))"
“CTRL+SHIFT+回车”的道公式是数组公式,在宏里要这样写
Cells(a, 7) .FormulaArray= "=LEFT(D2,MIN(IF(LENB(MID(D2,ROW($1:$100),1))=2,ROW($1:$100)))-1)"