表 1
Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("B93")) Is Nothing Then
If Target = Range("B93") Then
Sheets("Sheet2").Range("A1").Value = Target.Value
End If
End If
End Sub
表 2
Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
If Target = Range("A1") Then
If Sheets("Sheet1").Range("B93").Value <> Target.Value Then
Sheets("Sheet1").Range("B93").Value = Target.Value
End If
End If
End If
End Sub
該代碼僅適用于 B93 和 A1 上的單個單元格。
我嘗試將范圍設定為 sheet1 上的 Range("B93:N122") 和作業表 2 上的 Range("A1:M22") 以在發生更改時鏡像范圍,但出現錯誤 13 不匹配。
目標:我想將范圍(A1:M22)表 1 上的更改(兩種方式)鏡像到表 2,反之亦然。我缺少哪一行代碼?
uj5u.com熱心網友回復:
鏡像范圍
- 一個作業表的單元格中更改的值也將更改為另一個作業表的相同單元格中的相同值,反之亦然。
標準模塊 例如Module1
Option Explicit
Sub MirrorWorksheets( _
ByVal Target As Range, _
ByVal RangeAddress As String, _
ByVal WorksheetName As String)
Dim sws As Worksheet: Set sws = Target.Worksheet
Dim irg As Range: Set irg = Intersect(sws.Range(RangeAddress), Target)
If irg Is Nothing Then Exit Sub
Dim dws As Worksheet: Set dws = sws.Parent.Worksheets(WorksheetName)
Application.EnableEvents = False
Dim iarg As Range
For Each iarg In irg.Areas
dws.Range(iarg.Address).Value = iarg.Value
Next iarg
Application.EnableEvents = True
End Sub
Sheet1
模塊
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
MirrorWorksheets Target, "A1:M22,B93:N122", "Sheet2"
End Sub
Sheet2
模塊
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
MirrorWorksheets Target, "A1:M22,B93:N122", "Sheet1"
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/438573.html