excel中宏的公式中的下一个工作表引用

时间:2014-11-03 11:26:05

标签: excel excel-vba vba

我正在尝试在Excel中创建一个宏,用于在当前工作表的活动单元格中生成/插入公式。

一般来说,公式应该只是

= A - B,

由此:

'A'是下一张纸的单元格D66(在一系列纸张中),

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

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

此外,'next'和'next-next'标签的名称每天都会更改,这就是我需要根据它们相对于活动工作表而不是硬编码名称的位置来引用它们的原因。但是,相应选项卡中的实际单元格引用(D66和D67)不会更改。

非常感谢您对此提供的任何帮助

1 个答案:

答案 0 :(得分:1)

非常简单:

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

如果后续工作表被隐藏

,这种简单方法将无效