我想使用其他工作表(4 到 13)的索引号作为参考而不是它们的名称来计算跨越多个工作表的总和。 我选择使用索引号,因为工作表的名称会改变,但索引号不会。
我试着这样做:
Range("Y9") = "=SUM('Sheets(4):Sheets(13)'!R2C40)"
这只是以“Sheets(4)”和“Sheets(13)”作为名称,而不是引用相关的工作表
我也试过引用:
Range("Y9") = "=SUM('" & Sheets(4) & ":" & Sheets(13) & "'!R2C40)"
但是这也不起作用,我得到了 438 错误代码。 这是指可用属性/方法的错误。
我想知道是否可以这样使用索引号。
Sheets(4)
返回一个工作表对象。
您需要以字符串形式提供工作表的名称:
Range("Y9").FormulaR1C1 = "=SUM('" & Sheets(4).Name & ":" & Sheets(13).Name & "'!R2C40)"
一个注意事项:在引用范围对象时,最好使用父表。这样你就不会依赖于什么是活动工作表,也不需要激活工作表。
即
WorkSheet("blahblah").Range("Y9").FormulaR1C1 = "=SUM('" & Sheets(4).Name & ":" & Sheets(13).Name & "'!R2C40)"