墨指含香

百家号 01-23 11:38

1 VBA在单元格中输入公式

在公式中一般会出现对单元格地址的引用,引用的方式有绝对引用(A1方式)和相对引用(R1C1)方式,同样的,在用VBA输入公式时,也会有两种方式。

1.1 输入A1格式的公式

向单元格输入公式,实际上就是输入公式的字符串。这时采用Range的value属性或Formula属性均可。

.Range("E11").Formula = "=sum(E2:E10)"

1.2 输入R1C1公式

使用R1C1格式向单元格输入公式,实际上是录制宏的方式。是一种地址相对引用的方式,这里的相对引用的基准地址就是公式所在的地址, 以此地址为基准,偏移行R和列C得到相对引用位置。有些人可能喜欢这种方式,不过这种方式不像A1方式那样直观和容易理解。

(如果不是很熟悉VBA的语法格式,可以采取录制宏的方式去得到代码;如果觉得R1C1格式不习惯,可以在在Excel中设置公式的引用方式为A1(在Excel选项的公式项中设置),输入公式后再复制到VBA代码中。)

.Range("G11").FormulaR1C1 = "=SUM(R[-9]C:R[-1]C)";

[]中的数据代表单元格相对于当前单元格的行列偏移。

1.3 输入数组公式

向单元格或单元格区域输入数组公式,需要使用FormulaArray属性。

Range("E1:E11")FormulaArray = "=C2:C10*D2:D10"

2 使用函数

2.1 VBA引用Excel内置函数

.Range("A16") = "=find(""."",A13,1)"

.Range("A18") = Application.WorksheetFunction.Find(".", fname, 1)

(在VBE的代码窗口中输入Application.WorksheetFunction.可以得到引用Excel内置函数的提示;)

2.2 VBA引用VBA内置函数

.Range("A14") = InStr(ActiveWorkbook.Name, ".")

(在VBE的代码窗口中输入VBA.,可以得到内置函数的提示;)

2.3 自定义函数

函数过程的标志以Function开头,定义好以后,可以像调用Excel已定义的函数一样通过等于号去使用它。

如:

Function 及格率(cell As Range)

及格率=WorksheetFunction.CountIf(cell, ">=60") / WorksheetFunction.CountIf(cell, ">0")

及格率=Format(及格率, "0.00%")

End Function

自定义函数可以必须有返回值,所以有函数体中必须至少被赋值一次,也因此在Function后跟数据类型定义;

Function过程通常三种方式调用:

(1)在工作表中通过公式调用:像内部函数一样在工作表中使用,也可以与其它函数嵌套。使用方法如下:

公式→插入函数→类别:用户定义→选择函数;

(2)在VBA代码中被其它过程调用。

(3)递归:Function过程和Sub一样可以实现递归。如果不是刻意地、有计划地进入递归状态,可以会造成资源耗尽或者溢出堆栈空间。例如下例函数的调用:

在VBA语言中,也有预定义一些函数,与Excel预定义的相同功能的函数有细微区别)。

3 综合实例

有如下工作表:

运行以下VBA:

Sub formulaTest()

With ActiveWorkbook.Sheets("使用公式和函数")

For i = 2 To 10

.Range("E" & i).Value = "=sum(A" & i & ":D" & i & "2)"

Next

.Range("E11").Formula = "=sum(E2:E10)"

.Range("G11").FormulaR1C1 = "=SUM(R[-9]C:R[-1]C)"

.Range("G2:G10").FormulaArray = "=E2:E10*F2:F10"

.Range("A13") = ActiveWorkbook.Name

Dim fname As String

fname = Range("A13").Value

.Range("A14") = InStr(ActiveWorkbook.Name, ".")

.Range("A15") = InStr([A13], ".")

.Range("A16") = "=find(""."",A13,1)"

.Range("A17") = InStr(fname, ".")

.Range("A18") = Application.WorksheetFunction.Find(".", fname, 1)

.Range("A19") = Application.WorksheetFunction.Find(".", [A13], 1)

'[A13]相当于range("A13")

End With

'Instr([start,]string1,string2[,compare])

End Sub

效果如下:

对应的公式如下:

-End-

VBA|输入公式和使用函数相关推荐

  1. html输入公式得到混合运算结果,excel表格如何用公式计算加减乘除混合运算-excel乘法如何计算,excel函数怎么计算乘法...

    Excel支持数学中的四则运算,直接在目标单元格写相应的公式即可.例百如求A1减B1的差,在C1单元格可输入:=A1-B1 需注意: Excel里面任何公式(包括数学四则运算)都是需要以等号度开头. ...

  2. Excel 2010 VBA 入门 028 向单元格输入公式

    目录 示例: 利用Formula属性给单元格输入公式 Formula属性和Value属性的联系与区别 利用FormulaR1C1属性给单元格输入公式 R1C1引用样式的规则 (1)"绝对引用 ...

  3. VBA写入公式(2):日期公式集

    Sub 日期公式集()'先选择数字所在的一个单元格,在选择大写金额保存的一个单元格.'&两边无空格是公式上的连接符,&两边有空格是vba上的连接符.'带有双引号的外面必须由两重双引号, ...

  4. VBA写入公式(3):身份证公式集

    提取身份证信息: 1.出生日期: 2.性别: 3.年龄(周岁): 4.生肖: 5.星座: 6.省份简称: 7.省份全称: 8.退休日期(男60退休,女50退休): 9.用星号隐藏: 31.退休日期(男 ...

  5. excel输入公式显示公式_在Excel 2013中使用FORMULATEXT显示公式

    excel输入公式显示公式 There is a new function in Excel 2013 – FORMULATEXT – that lets you show the text from ...

  6. cad用计算机怎么计算坐标,CAD坐标里能输入公式吗?

    前几天有网友问在输入坐标或长度的时候是否能输入公式,比如20/3或7*8这样简单的算式.cad虽然在定位点或长度时不能直接输入算式,但利用计算器功能不仅可以输入数字的算式,还可以输入点之前的算式,点可 ...

  7. excel如何输入公式的技巧

    第一,excel输入公式的注意事项 excel表格中如何输入公式呢? excel输入公式需要注意下面三点: 第一,excel公式以=开始,以enter键输入结束. excel公式以等号 (=) 开始. ...

  8. 计算机应用公式求和,Excel函数教程:与求和有关的函数

    Excel函数教程:与求和有关的函数 SUM函数是Excel中使用最多的函数,利用它进行求和运算可以忽略存有文本.空格等数据的单元格,语法简单.使用方便.相信这也是大家最先学会使用的Excel函数之一 ...

  9. 计算机counta函数怎么用,Excel函数公式:Counta函数的多功能应用~

    针对" Excel函数公式:Counta函数的多功能应用~ "的问题,下面由IT产品经理-陆亦晓为您解答: Counta函数是统计函数,应用好的话,有非常多实用的技巧.今天就给大家 ...

最新文章

  1. sangerbox平台使用(二)差异分析
  2. 使用阿里云ACM简化你的Spring Cloud微服务环境配置管理
  3. 福建师范大学计算机组成原理期末试卷,福建师范大学2020年8月课程考试《计算机组成原理》作业考核试题...
  4. codeforce 1311 C. Perform the Combo 前缀和
  5. 第9步 spring 配置 springmvc配置
  6. ODP.NET数据访问
  7. java购买同一件商品时加锁_java中CAS的ABA问题思考和整理(不看后悔系列)
  8. 瞥一瞥AI,撩一撩算法
  9. 近期团队博客的摘要 5
  10. ReSharper卸载后Visual Studio的快捷键和智能提示消失
  11. 关于信息化的全球进程的思考
  12. vue移动端实现word在线预览
  13. 使用网络协议分析仪Wireshark
  14. unity3D 没有影子
  15. 实变函数与泛函分析课本pdf_免费推荐几本实变函数和泛函分析的书
  16. Unity 特效 之 武器拖尾效果
  17. WebSocket长连接因为网络波动而导致客户端的“假离线”---问题发现、分析到解决
  18. 2022-2028年全球与中国压电薄膜传感器行业发展趋势及投资战略分析
  19. 浏览器怎么录制网页视频?3种网页视频录制方法
  20. truffle init/unbox 中遇到的许多错误以及解决

热门文章

  1. mysql如何新建数据库
  2. Http会话保持机制:Cookie、Session和Token
  3. TIPTOP-IPAD实现车间数据联通交互
  4. 汽车厂商的摘星指南:我们能从如祺出行身上学到什么?
  5. 来CSDN两年了,发现一些CSDN网页的BUG
  6. linux串口返回条件,c – Linux – 串口读取返回EAGAIN
  7. SpringMVC:@RequestMapping放在类上面和设置请求方式和请求参数(动力)
  8. java 汉明距离_算法:hamming 海明距离(汉明距离):Java实现
  9. java 颜色 16进制转换_Java中Color和16进制字符串互相转换的方法
  10. linux怎么看一个端口是否可用,LINUX中查看某个端口是否被占用的方法