2014-11-03 79 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