ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > FormulaArray属性使用的公式是哪种引用方式?

FormulaArray属性使用的公式是哪种引用方式?

作者:绿色风 分类: 时间:2022-08-17 浏览:131
楼主
zzmxy
Q: 使用FormulaArray属性输入数组公式时,录制得到的宏均为R1C1模式,
    而普通公式输入时,有Formula和FormulaR1C1两种模式供选择,那么我们输入数组公式时,可以使用A1引用方式吗?

A: 可以的!我们使用FormulaArray输入数组公式时,既可以使用A1引用方式,也可使用R1C1的引用方式,比如说在我们要在C1单元格输入如下的一个数组公式:
=SUM(A1:A10*B1:B10) ,那么用R1C1和用A1的引用方式,分别可以如下书写,二者是完全等效的,
显然,A1引用方式会更符合我们的日常使用习惯,希望大家向后可以根据自己的需要选用这些属性。
  1. Range("C1").FormulaArray = "=SUM(RC[-2]:R[9]C[-2]*RC[-1]:R[9]C[-1])"
  2. Range("C1").FormulaArray = "=SUM(A1:A10*B1:B10)"
------------------------------------------------------------------
P.S:

一般情况下,我们都习惯了用宏录制的默认方式,即R1C1的引用方式在VBA中编写公式,但我们对R1C1引用方式的换算又并不熟悉,
这时推荐大家认识Range的.Formula属性,即可以使用A1引用方式来输入公式,比如说我们要在A1中输入“=SUM(B1:D1)” 时,两种模式的代码如下:
显然A1引用方式的书写更容易,也更容易理解。
  1. Range("A1").FormulaR1C1 = "=SUM(RC[1]:RC[3])"
  2. Range("A1").Formula = "=SUM(B1:D1)"
其实在Excel VBA中,Range()的公式属性分别有下面几种,
   
 

而其中.Formula、.ForumlaR1C1、.FormulaArray这三种属性就是用来向单元格中输入公式的,对应关系如下:


输入公式时也可以使用.Value直接赋公式到单元格,请参考下面帖子内容:
[Excel VBA] 如何用VBA在单元格区域中输入公式?
http://www.exceltip.net/thread-10337-1-1.html
2楼
xyf2210
学习

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap