Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在R1C1公式中使用变量_Excel_Vba_Excel Formula - Fatal编程技术网

Excel 在R1C1公式中使用变量

Excel 在R1C1公式中使用变量,excel,vba,excel-formula,Excel,Vba,Excel Formula,这个公式适用于: ActiveCell.FormulaR1C1=“=SUM(R[-14]C:R[-1]C)” 它返回=sum(c1:c14) 这个公式不起作用: ActiveCell.FormulaR1C1=“=SUM(R[-”&nrows&“]C:R[-1]C)” 它返回=SUM(C14:C1048576) 我有这个声明 Dim nrows as Integer 为什么带有nrows变量的公式不起作用?您的“错误”结果是因为R1C1公式将“换行”,因此,例如,如果您的活动单元格是A1,并且您

这个公式适用于:
ActiveCell.FormulaR1C1=“=SUM(R[-14]C:R[-1]C)”
它返回
=sum(c1:c14)

这个公式不起作用:
ActiveCell.FormulaR1C1=“=SUM(R[-”&nrows&“]C:R[-1]C)”
它返回
=SUM(C14:C1048576)

我有这个声明

Dim nrows as Integer
为什么带有nrows变量的公式不起作用?您的“错误”结果是因为R1C1公式将“换行”,因此,例如,如果您的活动单元格是A1,并且您输入
=R[-1]C
,您将得到
=A1048576
(ColA中的最后一个单元格)

类似地,A1中的
=RC[-1]
将为您提供
=XFD1

您的“错误”结果是因为R1C1公式将“换行”,因此,例如,如果您的活动单元格是A1,并且您输入
=R[-1]C
,您将得到
=A1048576
(ColA中的最后一个单元格)


类似地,A1中的
=RC[-1]
为您提供了
=XFD1

在实现R1C1样式的公式时应小心,除非使用宏记录器直接记录它们

样式为:

第一部分是参考文献的类型

绝对引用:对于绝对引用,符号不包含方括号,所写的数字表示单元格在网格中的明确位置。 e、 g

R1C1
表示
$A$1
,即第1行和第1列

R2C1
表示
$A$2

R1C2
表示
$B$1

绝对引用的使用相当简单,因为可以相当快速地了解网格中的单元格位置

相对引用:如果是相对引用,表示法需要使用方括号。请参阅下图,以清楚了解偏移符号

因此,如果当前单元格为B2,则公式

=R[-1]C
将引用
B1

=RC[-1]
将引用
A2
等,如图所示

您的具体案例:

你可以用

ActiveCell.FormulaR1C1=“=SUM(R1C:R”和(nrows-1)和“C)”

这基本上意味着,如果您的
ActiveCell
C16
,变量
nrows
16
,那么您将得到以下公式,其中使用了行的绝对引用技术

=总和(C$1:C$15)
即混合引用

对于相对参考,您可以使用:

ActiveCell.FormulaR1C1=“=SUM(R[”&-(nrows-1)和“]C:R[-1]C)”
将获得

=和(C1:C15)
即相对参考

对于绝对引用,假设您想要在C列中,它将变成:

ActiveCell.FormulaR1C1=“=SUM(R1C3:R)”和(nrows-1)和“C3”
将获得

=总和($C$1:$C$15)
即绝对参考

附加说明:

  • 表示法
    =RC
    指的是ActiveCell本身

  • 相对样式引用被包装,即A列中的
    =RC[-1]
    表示工作表中的最后一列,同样,第一行中的
    =R[-1]C
    表示工作表中的最后一行


除非直接使用宏记录器记录,否则在执行R1C1样式的公式时应小心

样式为:

第一部分是参考文献的类型

绝对引用:对于绝对引用,符号不包含方括号,所写的数字表示单元格在网格中的明确位置。 e、 g

R1C1
表示
$A$1
,即第1行和第1列

R2C1
表示
$A$2

R1C2
表示
$B$1

绝对引用的使用相当简单,因为可以相当快速地了解网格中的单元格位置

相对引用:如果是相对引用,表示法需要使用方括号。请参阅下图,以清楚了解偏移符号

因此,如果当前单元格为B2,则公式

=R[-1]C
将引用
B1

=RC[-1]
将引用
A2
等,如图所示

您的具体案例:

你可以用

ActiveCell.FormulaR1C1=“=SUM(R1C:R”和(nrows-1)和“C)”

这基本上意味着,如果您的
ActiveCell
C16
,变量
nrows
16
,那么您将得到以下公式,其中使用了行的绝对引用技术

=总和(C$1:C$15)
即混合引用

对于相对参考,您可以使用:

ActiveCell.FormulaR1C1=“=SUM(R[”&-(nrows-1)和“]C:R[-1]C)”
将获得

=和(C1:C15)
即相对参考

对于绝对引用,假设您想要在C列中,它将变成:

ActiveCell.FormulaR1C1=“=SUM(R1C3:R)”和(nrows-1)和“C3”
将获得

=总和($C$1:$C$15)
即绝对参考

附加说明:

  • 表示法
    =RC
    指的是ActiveCell本身

  • 相对样式引用被包装,即A列中的
    =RC[-1]
    表示工作表中的最后一列,同样,第一行中的
    =R[-1]C
    表示工作表中的最后一行


请记住,整数最多只能保存32767个值,因此最好将其作为
长的
进行调暗。nrows可能会小于100当您得到该结果时,
nrows
的值是多少,
ActiveCell
?可能您的要求是
ActiveCell.FormulaR1C1=“=SUM(R1C:R”&(nrows-1)&“C)”
。我已经添加了一个答案,并为将来遇到此问题的任何用户提供了解释。嗯。记住