Excel 如何同步两个单元格?

Excel 如何同步两个单元格?,excel,vba,Excel,Vba,我有一个代码,用来让一些单元格与另一个工作表中各自的单元格保持同步 如果我更改B2000TBES,即活页“Kalkylsammanställning”上的单元格I29,则应更改B2000TBES,即活页“B2000”上的单元格H195 整个代码。(几行基本上没有任何作用,因为这是粘贴在工作表后面的。) Private子工作表\u更改(ByVal目标作为范围) Dim htCell1 As范围 Dim htCell2 As范围 Dim htCell3 As范围 Dim htCell4 As范围 D

我有一个代码,用来让一些单元格与另一个工作表中各自的单元格保持同步

如果我更改
B2000TBES
,即活页“Kalkylsammanställning”上的单元格I29,则应更改
B2000TBES
,即活页“B2000”上的单元格H195

整个代码。(几行基本上没有任何作用,因为这是粘贴在工作表后面的。)

Private子工作表\u更改(ByVal目标作为范围)
Dim htCell1 As范围
Dim htCell2 As范围
Dim htCell3 As范围
Dim htCell4 As范围
Dim htCell5 As范围
Dim htCell6 As范围
变暗hCell1 As范围
变暗hCell2 As范围
变暗hCell3 As范围
变暗hCell4 As范围
变暗hCell5 As范围
变暗hCell6 As范围
调暗hCell7作为量程
变暗hCell8 As范围
变暗hCell9 As范围
调光hCell10作为量程
调光rCell1 As范围
调光RCELL2AS范围
调光rCell3 As范围
调光rCell4 As范围
调光RCELL5AS范围
调光rCell6 As范围
调光rCell7 As范围
调光rCell8 As范围
变暗rCell9 As范围
调光rCell10 As范围
变暗pecell1as范围
变暗peCell2 As范围
变暗peCell3 As范围
暗淡的peCell4 As范围
暗peCell5 As范围
变暗peCell6 As范围
变暗peCell7 As范围
变暗peCell8 As范围
变暗的pecell9as范围
暗pecell10as范围
昏暗的步调1 As范围
昏暗的步调2 As范围
暗配3 As范围
暗配4 As范围
昏暗的步调5 As范围
暗配6 As范围
暗配7 As范围
昏暗的步调8 As范围
昏暗的步调9 As范围
调暗起搏器10 As范围
暗规格1作为范围
昏暗的镜面2 As范围
暗色等级3 As范围
暗色等级4 As范围
暗淡的镜面5 As范围
暗淡的镜面6 As范围
暗淡的镜面7 As范围
昏暗的镜面8 As范围
暗镜9 As范围
暗淡的镜面10 As范围
Dim spaCell1 As范围
Dim spaCell2 As范围
Dim spaCell3 As范围
Dim spaCell4 As范围
Dim spaCell5 As范围
Dim spaCell6 As范围
Dim spaCell7 As范围
Dim spaCell8 As范围
Dim spaCell9 As范围
Dim spaCell10 As范围
Dim varRanta As系列
如果Target.Count>1,则退出Sub
Set htCell1=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“htid”)
设置htCell2=ActiveWorkbook.Sheets(“S3000”).Range(“S3000HTID”)
设置htCell3=ActiveWorkbook.Sheets(“S2000”).Range(“S2000HTID”)
设置htCell4=ActiveWorkbook.Sheets(“K2000”).Range(“K2000HTID”)
设置htCell5=ActiveWorkbook.Sheets(“B2000”).Range(“B2000HTID”)
设置htCell6=ActiveWorkbook.Sheets(“K10”).Range(“K10HTID”)
Set hCell1=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“S3000HYRAS”)
设置hCell2=ActiveWorkbook.Sheets(“S3000”).Range(“S3000HYRA”)
Set hCell3=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“S2000HYRAS”)
设置hCell4=ActiveWorkbook.Sheets(“S2000”).范围(“S2000 HYRA”)
设置hCell5=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“K2000HYRAS”)
设置hCell6=ActiveWorkbook.Sheets(“K2000”).范围(“K2000 HYRA”)
Set hCell7=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“B2000HYRAS”)
设置hCell8=ActiveWorkbook.Sheets(“B2000”).范围(“B2000HYRA”)
设置hCell9=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“K10HYRAS”)
设置hCell10=ActiveWorkbook.Sheets(“K10”).Range(“K10HYRA”)
Set rCell1=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“S3000FAKTORS”)
设置rCell2=ActiveWorkbook.Sheets(“S3000”).Range(“S3000FAKTOR”)
设置rCell3=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“S2000FAKTORS”)
设置rCell4=ActiveWorkbook.Sheets(“S2000”).Range(“S2000FAKTOR”)
Set rCell5=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“K2000FAKTORS”)
设置rCell6=ActiveWorkbook.Sheets(“K2000”).Range(“K2000FAKTOR”)
Set rCell7=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“B2000FAKTORS”)
设置rCell8=ActiveWorkbook.Sheets(“B2000”).Range(“B2000FAKTOR”)
设置rCell9=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“K10FAKTORS”)
设置rCell10=ActiveWorkbook.Sheets(“K10”).Range(“K10FAKTOR”)
Set peCell1=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“S3000TBES”)
Set peCell2=ActiveWorkbook.Sheets(“S3000”).Range(“S3000TBE”)
Set peCell3=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“S2000TBES”)
Set peCell4=ActiveWorkbook.Sheets(“S2000”).范围(“S2000TBE”)
Set peCell5=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“K2000TBES”)
Set peCell6=ActiveWorkbook.Sheets(“K2000”).范围(“K2000TBE”)
Set peCell7=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“B2000TBES”)
Set peCell8=ActiveWorkbook.Sheets(“B2000”).范围(“B2000TBE”)
Set peCell9=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“K10TBES”)
Set peCell10=ActiveWorkbook.Sheets(“K10”).Range(“K10TBE”)
Set paCell1=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“S3000TBAS”)
Set paCell2=ActiveWorkbook.Sheets(“S3000”).Range(“S3000TBA”)
Set paCell3=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“S2000TBAS”)
Set paCell4=ActiveWorkbook.Sheets(“S2000”).范围(“S2000TBA”)
Set paCell5=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“K2000TBAS”)
Set paCell6=ActiveWorkbook.Sheets(“K2000”).范围(“K2000TBA”)
Set paCell7=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“B2000TBAS”)
Set paCell8=ActiveWorkbook.Sheets(“B2000”).范围(“B2000TBA”)
Set paCell9=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“K10TBAS”)
Set paCell10=ActiveWorkbook.Sheets(“K10”).Range(“K10TBA”)
Set speCell1=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“S3000SPE”)
Set speCell2=ActiveWorkbook.Sheets(“S3000”).Range(“S3000SPE”)
Set speCell3=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“S2000 SPES”)
Set speCell4=ActiveWorkbook.Sheets(“S2000”).Range(“S2000SPE”)
Set speCell5=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“K2000SPES”)
Set speCell6=ActiveWorkbook.Sheets(“K2000”).Range(“K2000SPE”)
Set speCell7=ActiveWorkbook.Sheets(“Kalkylsammanställning”).范围(“B2000SPE”)
Set speCell8=ActiveWorkbook.Sheets(“B2000”).Range(“B2000SPE”)
Set speCell9=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Range(“K10SPES”)
Set speCell10=ActiveWorkbook.Sheets(“K10”).Range(“K10SPE”)
Set spaCell1=ActiveWorkbook.Sheets(“Kalkylsammanställning”).Rang
Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    
    If Target.Cells.Count > 1 Then Exit Sub
    
    Application.EnableEvents = False
    On Error GoTo SAVE_EXIT
    
    Dim CellName As String
    CellName = vbNullString 'initialize
    
    'check if cell has a name
    On Error Resume Next
    CellName = Target.Name.Name
    On Error GoTo SAVE_EXIT
    
    If CellName <> vbNullString Then
        'check if cell should be synced to …
        Dim SyncTo As Variant
        SyncTo = Application.VLookup(CellName, Worksheets("SyncTable").Range("A:B"), 2, 0)
        
        If Not IsError(SyncTo) Then
            Dim Destination As Range
            Set Destination = Nothing 'initialize
            
            'check if sync to destination names exist
            On Error Resume Next
            Set Destination = Range(SyncTo)
            On Error GoTo SAVE_EXIT
            
            If Not Destination Is Nothing Then
                'names exist so sync
                Range(SyncTo).Value = Target.Value
            Else
                MsgBox "Named range '" & SyncTo & "' could not be found, check names", vbCritical
            End If
        End If
    End If

    
SAVE_EXIT: 'make sure you never end up with disabled events
    Application.EnableEvents = True
    If Err.Number <> 0 Then Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpFile, Err.HelpContext
End Sub