2015-02-10 89 views
0

我想在VBA中編寫公式以將公式寫入依賴其他動態單元格的單元格中。更改VBA中的公式並在Excel中顯示它

Dim cell1, cell2 as Range 
set cell1 = Range("A1") 
set cell2 = Range("A2") 

「我不能硬編碼A1和A2,因爲細胞將通過增加行

以後更改」我想用引用在B1 =(1+cell1)*(1+cell2)顯示,但是當我看到它在Excel中,它說=(1+A1)*(1+A2)

和B2這將是=(1+A2)*(1+A3)

我如何在VBA實現這一目標?

+0

A1 + 1是什麼?你添加一行或一列嗎?應該是B1嗎?或A2? – Ditto 2015-02-10 19:29:49

回答

0

嘗試像這樣... INDIRECT組合將字符串「A1」轉換爲單元格引用。和OFFSET來調整給定參考的行數/列數。

Sub test() 
    Dim s1 As String 
    Dim add_row As Integer 
    Dim add_col As Integer 

    s1 = "A1" 

    add_row = 2 
    add_col = 1 

    Range("A1").Value = "=offset(indirect(" + Chr(34) + s1 + Chr(34) + ")," + Str(add_row) + "," + Str(add_col) + ",1,1)" 

    End Sub 

[編輯] 剛剛意識到,甚至不需要在那裏間接功能:

這個作品一樣好:

Range("A1").Value = "=offset(" + s1 + "," + Str(add_row) + "," + Str(add_col) + ",1,1)" 

;) [/編輯]