解決的是有一個功能,我可以把細胞A2
,將返回無論是在下面的任何細胞被寫入A1
細胞?查找相對位置細胞在其他細胞
因此,舉例來說,如果A1
包含=B35
然後A2
將返回包含在細胞B36
的價值,如果我改變A1
到=C17
然後A2
現在將包含無論是在C18
?
我一直在嘗試使用indirect()
,offset()
和address()
的組合,但無法弄清楚。
解決的是有一個功能,我可以把細胞A2
,將返回無論是在下面的任何細胞被寫入A1
細胞?查找相對位置細胞在其他細胞
因此,舉例來說,如果A1
包含=B35
然後A2
將返回包含在細胞B36
的價值,如果我改變A1
到=C17
然後A2
現在將包含無論是在C18
?
我一直在嘗試使用indirect()
,offset()
和address()
的組合,但無法弄清楚。
假設你不想做任何事情遠遠抵消單個單元格引用,你可以在混合更復雜一點VBA。
在一個新的模塊:
Public Function tFormula(ByVal Target As Range) As String
tFormula = Mid(Target.FORMULA, 2)
End Function
B1 = 「= C1」
C2 = 「你好」
A1 =「=偏移(tFormula(B1),1,0) 「
偏移(tFormula(B1),1,0)= 」你好「
我不認爲這是可以做到很喜歡你想要的。最近的我可以將「目標」地址放在一個單元格中,例如,在這張圖片中,A2只包含字符串「b3」。然後你可以指出間接函數。因此,在D2中的公式,下面B3單元格的值是:
=OFFSET(INDIRECT(A2),1,0)
我想我可能已經解決了這一個。在Excel 2013,我的問題是與你相似:
E107
包含=A100
,我想E108
返回包含在細胞B100
值,所以如果我改變E107
到=A101
然後E108
現在將包含無論是在B101
。
我的解決辦法:
=INDIRECT(CHAR(CODE(RIGHT(LEFT(FORMULATEXT(E107),2),1))+1)&RIGHT(FORMULATEXT(E107),LEN(FORMULATEXT(E107))-2))
,我發現了公式的單元格中的文本與FORMULATEXT
和應用ASCII操作與CODE
和CHAR
加起來A
,使之成爲B
,然後返回值爲INDIRECT
。需要一些字符串操作,具有LEFT
和RIGHT
的功能。
+1。如果確實有一個「=」部分則這可能與'SUBSTITUTE' – brettdj
感謝戴夫被剝離出來,我的意思是@brettdj。如果你的意思是在公式開頭的「=」可以被替代掉,我不知道如何。這是我嘗試的第一件事,因爲它會讓整個事情變得更容易,但是在VBA中做這件事情卻很少,我不明白。 –
我同意 - 我正在考慮像'= B5'這樣的字符串,而不是一個真正的公式。第二個想法是不太可能的 – brettdj