目標:如果紙張1上A1:A2中的任何值發生更改,則紙張2上A1:A2中的值應自動更新這些值。下面表1的事件處理程序無法工作:自動複印紙張1 A1:A2到紙張2 A1:A2當Sheet1 A1:A2更改
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Dim target As Range
Set target = Range("A1:A2")
If Not Intersect(target, Sheets(2).Range("A1:A2")) Is Nothing Then
Range("A1:A2").Value = Sheets(2).Range("A1:A2").Value
End If
Application.EnableEvents = True
End sub
像往常一樣,VBA的頭腦麻木不透明的語法是我的垮臺。任何意見在執行上述簡單的任務將不勝感激,因爲將引用VBA參考指南,實際上有助於解釋VBA的隱藏細節。
Sheet1工作模塊中的事件處理程序將只在Sheet1響應事件。如果你想捕獲sheet2中的事件,那麼你需要在該工作表的代碼模塊中使用一個處理程序。 –
_VBA參考指南,實際上很有用_:你已經在這裏... –
我試過泰德的建議沒有成功。也就是說,我將事件處理程序放在工作表1代碼模塊中。當工作表1中的單元格更改時,工作表2中的單元格不會按預期更改。一定有辦法。 – jmaz