2016-01-13 66 views
2

我想在Excel中擁有某個標題單元格動態更新其內容取決於我當前正在使用哪一行,但使用具有固定列的地址。所以標題內容的列引用將始終保持不變,但是,我希望行地址根據我正在編輯的單元格(即活動單元格)而變化。動態更新來自固定列引用但來自當前活動行的內容的單個單元格

A      B 
1 (dynamic header cell) 
2 John     likes to eat apples 
3 Mary     never smokes 
4 Peter    tries too hard to be cool 
5 David    loves madonna 

所以,如果我點擊單元格A2(「約翰」),我想標題單元格(A1)和B2的內容更新(「喜歡吃蘋果」),同樣如果我點擊在單元格A4(「Peter」)上,我想用相同的標題單元格(A1)更新B4的內容(「嘗試太酷」)。

我已經做了一些研究,我想也許我可能會使用一些細胞功能或間接功能的組合,但我無法設法讓這個工作。我寧願使用簡單的公式,但如果我需要做VBA,那很好。

(如果您建議使用VBA,請包括整個功能,因爲我不知道該語言)。

任何人都可以幫忙嗎?

+0

這需要在vba中的Worksheet_SelectionChange事件中。 –

回答

1

正如Scott Craner所說,您需要VBA中的「Worksheet_SelectionChange」事件。既然你表示不熟悉VBA,我會通過它與你談談。首先,通過輸入Alt + F11打開VBA編輯器。在VBA編輯器中,輸入Ctrl + R打開或跳轉到項目瀏覽器(通常是窗口左側的窗格),然後雙擊希望使用該功能的工作表名稱。現在輸入以下代碼:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If Not(Intersect(ActiveCell, Range("A:A")) Is Nothing) Then 
     Cells(1, 1).Value = Cells(Selection.Row, 2) 
    End If 
End Sub 

第一行告訴VBA它應該在選擇更改時執行代碼。第二行檢查你的選擇是否在列A中。第三行實際上是這樣做的:它從所選行的第二列獲取值並將此值放入A1中。

+1

您可能想要放入一個交叉點,使其僅在列A被選中時纔會觸發。 –

+0

我希望在任何時候激活任何單元格時觸發此功能 - 但謝謝。這是一個深思熟慮的問題。 :) – CoderScissorhands

+0

在這種情況下,您應該刪除代碼中的第2行和第4行我建議 – NiH

相關問題