2014-11-03 89 views
0

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

一般地,下式应当仅仅是

= A - B,

由此:

下一张片材的 'A' 是细胞D66(在一系列的片材),并

“B”是下一个片(这样两个片材到活动工作表的右侧)

注之后的下一个片我想要的宏,以产生理论值的小区D67 e [= A - B]公式,而不仅仅是A - B的数字结果。

此外,'next'和'next-next'选项卡的名称每天都在变化,这就是为什么我需要根据它们相对于活动页面的位置而不是硬编码名称来引用它们。但是,各个选项卡中的实际单元格引用(D66和D67)不会更改。

非常感谢任何帮助,您可以在此

+0

我可以给你这种简单的方法行不通这个代码,但首先我想知道你的想法。你如何看待逻辑起作用?你有尝试过什么吗? – 2014-11-03 11:49:13

+0

在创建该公式之前,您需要考虑几件事 '1'当我们有4张纸时,如Sheet1,Sheet2(隐藏),Sheet3和Sheet4会发生什么情况。您是否希望公式从Sheet2和Sheet3或Sheet3和Sheet4中获取值? '2'在表格之后您想放置配方 – 2014-11-03 11:59:22

回答

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溃败的评论:

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 

如果继承片隐藏

+0

之后有两张以上的纸张。它不是那么简单:)当两张纸之间不可见时,它也会失败... – 2014-11-03 11:50:25

+0

另外还有3张涉及而不是2;) – 2014-11-03 11:51:29

+0

@SiddharthRout谢谢!........我试图解决我的**编辑#1中的两个问题之一** – 2014-11-03 12:09:24