Excel vba /使用索引号在多个工作表上创建总和

zc0qhyus  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(120)

我想使用其他工作表(4到13)的索引号作为参考,而不是它们的名称,对多个工作表进行求和。我选择使用索引号是因为工作表的名称会改变,但索引号不会改变。
我试着这样做:

Range("Y9") = "=SUM('Sheets(4):Sheets(13)'!R2C40)"

这只是采取了“表(4)”和“表(13)”作为名称,而不是指有关的表
我也试着引用:

Range("Y9") = "=SUM('" & Sheets(4) & ":" & Sheets(13) & "'!R2C40)"

但这也没有工作,我得到了438错误代码。这是指可用属性/方法错误。
我想知道是否有可能使用这样的指数。

g52tjvyc

g52tjvyc1#

Sheets(4)返回工作表对象。
您需要以字符串形式提供工作表的名称:

Range("Y9").FormulaR1C1 = "=SUM('" & Sheets(4).Name & ":" & Sheets(13).Name & "'!R2C40)"

一个注意:在引用范围对象时,使用父工作表始终是最佳做法。这样,您就不依赖于什么是活动工作表,也不需要激活工作表。
此外,在Worksheets上使用Sheets可能会导致问题,因为Sheets还包括代码和图表。所以如果你的意思是Worksheets使用它。

Worksheets("blahblah").Range("Y9").FormulaR1C1 = "=SUM('" & Worksheets(4).Name & ":" & Worksheets(13).Name & "'!R2C40)"

相关问题