Sinkronkan dua sel di excel

Pada artikel ini, kita akan melihat cara menyinkronkan data antara dua sel/rentang/kolom atau baris menggunakan VBA. Tentu saja, Anda dapat menggunakan referensi sel untuk melakukan hal yang sama, tetapi jika Anda perlu menggunakan VBA, Anda dapat merujuk ke contoh berikut

Dalam setiap contoh di bawah ini, kami akan menggunakan subrutin "Worksheet_Change". Subrutin ini dijalankan setiap kali ada perubahan nilai dalam lembar kerja. Parameter untuk subrutin ini adalah Target (bertipe Rentang) yang mewakili rentang di mana perubahan dibuat. Kode harus ditulis dalam modul kode lembar tempat perubahan perlu disinkronkan

Isi

Contoh 1. Sinkronisasi data antara dua sel

Katakanlah, Anda memiliki dua dasbor di mana jika Anda memasukkan tanggal di dasbor pertama, tanggal tersebut secara otomatis akan tercermin di dasbor kedua. Dalam contoh kami di bawah ini, kami akan menyinkronkan sel A1 di Sheet1 secara otomatis ke sel A1 yang sama di Sheet2. Seperti disebutkan di atas, perlu diketahui bahwa kode harus ditulis dalam modul kode Sheet1. Ini kodenya

Private Sub Worksheet_Change(ByVal Target As Range)
Dim sourceSheet As Worksheet, targetSheet As Worksheet
Dim syncCell As String

'Set the source and target sheets here
Set sourceSheet = Sheet1
Set targetSheet = Sheet2

'This will be the cell that needs to be synced
syncCell = "A1"

'Check whether the cell that was changed in Sheet1 is A1
If Target.Address = Range(syncCell).Address Then
'If so, copy the value to Sheet2, cell A1
targetSheet.Range(Target.Address) = sourceSheet.Range(Target.Address)
End If

End Sub

Kami menggunakan Target. Alamat untuk menemukan sel tempat perubahan dibuat. Ini akan mengembalikan alamat dalam format "$A$1"

Jadi, setiap kali Anda membuat perubahan di Sheet1 sel A1, nilainya akan disalin secara otomatis ke sel yang sesuai di Sheet2. Jika Anda menghapus sel, maka sel di Sheet2 juga akan dihapus. Perhatikan bahwa, hanya nilai yang akan disalin, bukan rumus atau pemformatannya. Jika Anda perlu menyalin penggunaan pemformatan

If Target.Address = Range(syncCell).Address Then
sourceSheet.Range(Target.Address).Copy
targetSheet.Range(Target.Address).PasteSpecial xlPasteAll
End If

_

Dan pada baris yang sama, gunakan rumus untuk menyalin

If Target.Address = Range(syncCell).Address Then
sourceSheet.Range(Target.Address).Copy
targetSheet.Range(Target.Address).PasteSpecial xlPasteFormulasAndNumberFormats
End If

Dalam hal ini, jika Anda memasukkan nilai, nilai tersebut akan disinkronkan dan jika Anda memasukkan rumus, rumus tersebut akan disinkronkan

Contoh 2. Sinkronkan data antara dua baris

Sekarang, mari kita lihat cara menyinkronkan seluruh baris di antara dua sheet. Untuk contoh ini, kami akan menyinkronkan baris 1 di Sheet1 ke baris yang sesuai di Sheet2

Private Sub Worksheet_Change(ByVal Target As Range)
Dim sourceSheet As Worksheet, targetSheet As Worksheet
Dim syncRow As Long

'Set the source and target sheets here
Set sourceSheet = Sheet1
Set targetSheet = Sheet2

'This will be the row that needs to be synced
syncRow = 1

'Check whether the cell that was changed in Sheet1 lies in Row 1
If Target.Row = syncRow Then
'If so, get the address of the cell that changed
'And make the same change in corresponding cell in Sheet2
targetSheet.Range(Target.Address) = sourceSheet.Range(Target.Address)
End If

End Sub

Di sini kami menggunakan Target. Properti baris untuk mendapatkan nomor baris sel yang diubah. Jadi, jika Anda mengubah sel apa pun di baris 1, nilainya akan disalin ke sel yang sama di baris 2

Contoh 3. Sinkronisasi data antara dua kolom

Sinkronisasi dua kolom sangat mirip dengan sinkronisasi dua baris. Ini kode untuk menyinkronkan kolom 1

Private Sub Worksheet_Change(ByVal Target As Range)
Dim sourceSheet As Worksheet, targetSheet As Worksheet
Dim syncCol As Long

'Set the source and target sheets here
Set sourceSheet = Sheet1
Set targetSheet = Sheet2

'This will be the column that needs to be synced
syncCol = 1

'Check whether the cell that was changed in Sheet1 lies in Column 1
If Target.Column = syncCol Then
'If so, get the address of the cell that changed
'And make the same change in corresponding cell in Sheet2
targetSheet.Range(Target.Address) = sourceSheet.Range(Target.Address)
End If

End Sub
_

Contoh 4. Sinkronkan data antara dua rentang

Mari kita lihat cara menyinkronkan dua rentang dalam contoh ini. Kami akan menggunakan Aplikasi. Metode berpotongan untuk menentukan apakah sel yang diubah berada dalam rentang yang akan disinkronkan. Ini mengembalikan rentang berpotongan dari rentang yang ditentukan. Dan jika tidak ada persimpangan (mis. e sel tidak termasuk dalam rentang), nilai yang dikembalikan kosong. Jadi, kami menyamakannya dengan Tidak ada dalam kondisi kami jika

Private Sub Worksheet_Change(ByVal Target As Range)
Dim sourceSheet As Worksheet, targetSheet As Worksheet
Dim syncRange As String
Dim isInRange

'Set the source and target sheets here
Set sourceSheet = Sheet1
Set targetSheet = Sheet2

'This will be the column that needs to be synced
syncRange = "A1:C5"

'Check if the modified cell lies within the range to be synced
Set isInRange = Application.Intersect(Target, Range(syncRange))

If isInRange Is Nothing Then
'Do nothing if the cell falls outside the range
Else
'Else sync the cell contents
targetSheet.Range(Target.Address) = sourceSheet.Range(Target.Address)
End If

End Sub

Jadi, kami telah melihat cara menyinkronkan data antara 2 lembar di Excel. Sepanjang artikel kami berasumsi bahwa data sumber perlu disinkronkan pada sel yang sesuai di lembar target. Namun, jika Anda ingin menyinkronkan, katakanlah, sel A1 di sumber ke sel B2 di target, Anda dapat dengan mudah mengubah kode menjadi seperti ini

targetSheet.Range("B2") = sourceSheet.Range("A1")
_

Kedua, sumber dan lembar target bisa sama, seperti yang terlihat di bawah ini

sourceSheet.Range("B2") = sourceSheet.Range("A1")

Untuk bacaan lebih lanjut tentang apa itu range. sel, merujuk ke artikel. Apa itu Rentang VBA. Sel dan Bagaimana Anda Menggunakannya?

Bagaimana Anda menyinkronkan sel?

Sinkronkan Sel di Buku Kerja Terpisah . Beralih ke buku kerja lain, pilih lembar, lalu klik sel yang akan ditautkan. Nama buku kerja mendahului nama lembar di bilah rumus. Click the cell you want to link from and type “=”. Switch to the other workbook, select the sheet, then click on the cell to link to. The workbook name precedes the sheet name in the formula bar.

Apakah mungkin membuat koneksi dua arah antara dua sel?

Jika Anda menginginkan tautan Dinamis antara Sel atau Rentang Sel, antara Lembar Kerja atau bahkan Buku Kerja, untuk entri data dua arah, maka VBA adalah satu-satunya solusi. You need to use the following VBA code in both the Sheets: How it works: Either press Alt+F11 or Right click the Sheet TAb.