Excel中macros的公式中的下一个工作表参考

我试图在Excel中创build一个macros,在当前工作表的活动单元格中生成/插入一个公式。

一般来说,公式应该是简单的

= A – B,

其中:

'A'是下一个单元格的单元格D66(在一系列表单中),以及

'B'是下一张纸的下一张纸的单元格D67(因此在活动纸的右侧有两张纸)

请注意,我希望macros在活动单元格中生成[= A – B]公式,而不仅仅是A – B的数值结果。

此外,“下一个”和“下一个下一个”选项卡的名称每天都会更改,这就是为什么我需要根据它们相对于活动工作表的位置而不是硬编码名称来引用它们。 然而,相应选项卡中的实际单元格引用(D66和D67)不会更改。

非常感谢您的帮助

很简单:

 Sub FormulaMaker() Dim sh As Worksheet, namee As String Set sh = ActiveSheet.Next namee = sh.Name & "!" ActiveCell.Formula = "=" & namee & "D66-" & namee & "D67" End Sub 

注意:

如果活动工作表是最后一个工作表,这将失败。

编辑#1:

根据Siddharth Rout的评论,这是更正:

 Sub FormulaMaker() Dim sh As Worksheet, namee As String Dim sh2 As Worksheet, namee2 As String Set sh = ActiveSheet.Next Set sh2 = sh.Next namee = sh.Name & "!" namee2 = sh2.Name & "!" ActiveCell.Formula = "=" & namee & "D66-" & namee2 & "D67" End Sub 

如果隐藏了后继工作表,这种简单的方法将不起作用