
我正在嘗試建立一個電子表格來編譯多個單元格的資料。
本質上,我希望單元格A1
能夠Sheet1
反映Sheet2
用戶輸入的相同信息,而無需在輸入資料時刪除公式。
我需要使用者能夠將資料輸入到這些儲存格中,但透過使用=Sheet2!A1
或=Sheet1!A1
我建立循環引用,並且還讓使用者可以刪除公式。
誰能推薦解決這個問題的方法?
答案1
您無法在包含公式的儲存格中輸入數據,同時保留公式。
解決方案是讓使用者在不同的儲存格中輸入數據,然後在A1
兩個工作表中引用該儲存格。
答案2
沒有宏你就無法做到這一點。這段程式碼應該可以工作:
Private Sub Worksheet_Change(ByVal Target As Range)
therow = 1
thecolumn = 1
Dim wks As Worksheet
cellrow = Target.Row
cellcolumn = Target.Column
If (cellrow = therow And cellcolumn = thecolumn) Then
Set wks = ThisWorkbook.Worksheets("Sheet2")
wks.Cells(cellrow, cellcolumn) = Target.Value
End If
End Sub
ALT用+打開宏F11,雙擊表1並將程式碼貼到右側。該程式碼在 中執行Sheet 1
,因此它將變更複製到Sheet1 A1
中Sheet2 A1
。
每當工作表發生變更時,都會執行該巨集。它檢查更改的儲存格是否位於第 1 行和第 1 列(儲存格 A1),然後將值複製到表2。
如果您想檢查更改表2到表1另外,那麼:
- 按兩下表2在左側。
- 將代碼貼到右側。
- 更改該行
Set wks = ThisWorkbook.Worksheets("Sheet2")
以指示新目的地:Set wks = ThisWorkbook.Worksheets("Sheet1")
。
現在,這個宏使用變數瑟羅和專欄決定將值複製到另一個工作表。一開始,它們在各行中設置為 1 therow=1
,thecolumn=1
這意味著我們對該單元格感興趣A1。並進一步檢查修改後的儲存格是否與行中的這些值相符If (cellrow = therow And cellcolumn = thecolumn) Then
。
您可以修改這些值以根據您的需求進行自訂,甚至檢查完整的列或行,例如:
將驗證行更改為If (cellcolumn = thecolumn) Then
將複製與變數具有相同值的列中發生的更改,thecolumn
無論它是哪一行。
其他例子:
將驗證行更改為If (cellcolumn > thecolumn) Then
將複製任何大於該值的列中發生的更改,thecolumn
無論該行是哪一行。