簡體   English   中英

在兩個不同的工作表中構造一對鏡像單元

[英]Construct a pair of mirrored cells in two different worksheets

我正在嘗試在工作簿的兩張不同的紙上創建一對單元,以便您在一個單元中輸入的所有內容都被復制到另一個單元中。 如果這是一種方法,那顯然是微不足道的。 我想使其鏈接為雙向。 這將涉及VBA腳本編寫,對此我還是一個新手。 有人對如何學習我需要知道的東西有一些指示嗎? 我已經用Google搜索過,但是只是生成了一些代碼示例而沒有解釋,並且我不想放入我不理解的代碼。

假設您有Sheet1和Sheet2,它們的名稱就是這樣。

  1. 在Sheet1上,轉到Developer,然后單擊View Code。 您應該正在尋找Sheet1的空白編碼表
  2. 在編碼區域的左側下拉列表中,選擇“工作表”,而不是默認值(“常規”)
  3. 在右邊下拉。 選擇更改。 系統會自動為您提供以下信息:
 Private Sub Worksheet_Change(ByVal Target As Range) End Sub 

對Sheet1中任何單元格的更改都會觸發上面的代碼。

已更改的單元格稱為目標范圍。

您可以使用Target.Address和Target.Value輕松識別目標范圍的地址和內容。 然后,您可以使用該地址和值更新Sheet2。

Private Sub Worksheet_Change(ByVal Target As Range)

     ThisWorkbook.Sheets("Sheet2").Range(Target.Address).Value = Target.Value

End Sub

要將數據從Sheet2復制到Sheet1,只需在Sheet2上重復上述步驟即可。

Private Sub Worksheet_Change(ByVal Target As Range)

     ThisWorkbook.Sheets("Sheet1").Range(Target.Address).Value = Target.Value

End Sub

但是,如果對Sheet1的更改將觸發對Sheet2的更改,從而又對Sheet1進行更改,則更改將無限期地發生,這是沒有意義的。 因此,我們需要添加一些代碼以僅在Sheet1和Sheet2的值不同時才應用更改。 如果值相同,則無需應用更改。 因此,Sheet2的代碼應如下所示:

Private Sub Worksheet_Change(ByVal Target As Range)

     If ThisWorkbook.Sheets("Sheet1").Range(Target.Address).Value <> Target.Value Then

        ThisWorkbook.Sheets("Sheet1").Range(Target.Address).Value = Target.Value

     End If

End Sub

您將使用一對事件宏來完成此操作。 這是您可以適應的示例:

反映變化

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM