Note: The other languages of the website are Google-translated. Back to English

Bagaimana cara menyinkronkan daftar drop-down di beberapa lembar kerja di Excel?

Misalkan Anda memiliki daftar drop-down pada beberapa lembar kerja dalam buku kerja yang berisi item drop-down yang sama persis. Sekarang Anda ingin menyinkronkan daftar drop-down di seluruh lembar kerja sehingga setelah Anda memilih item dari daftar drop-down di satu lembar kerja, daftar drop-down di lembar kerja lain secara otomatis disinkronkan dengan pilihan yang sama. Artikel ini menyediakan kode VBA untuk membantu Anda memecahkan masalah ini.

Sinkronkan daftar drop-down di beberapa lembar kerja dengan kode VBA


Sinkronkan daftar drop-down di beberapa lembar kerja dengan kode VBA

Misalnya, daftar drop-down ada di lima lembar kerja bernama Lembar1, Lembar2, ... lembar5, untuk menyinkronkan daftar drop-down di lembar kerja lain sesuai dengan pilihan drop-down di Sheet1, silakan terapkan kode VBA berikut untuk menyelesaikannya.

1. Buka Sheet1, klik kanan tab sheet dan pilih Lihat kode dari menu klik kanan.

2. Dalam Microsoft Visual Basic untuk Aplikasi jendela, rekatkan kode VBA berikut ke dalam Lembar1 (Kode) jendela.

Kode VBA: Sinkronkan daftar drop-down di beberapa lembar kerja

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220815
    Dim tSheet1 As Worksheet
    Dim tRange As Range
    Dim xRangeStr As String
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    
    xRangeStr = "A2:A11"

    Set tRange = Intersect(Target, Range(xRangeStr))
    If Not tRange Is Nothing Then
        xRangeStr = tRange.Address
        Application.EnableEvents = False
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet2")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet3")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet4")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet5")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Application.EnableEvents = True
    End If
    
End Sub

Catatan:

1) Dalam kode, A2: A11 adalah rentang yang berisi daftar drop-down. Pastikan semua daftar drop-down berada dalam rentang yang sama di seluruh lembar kerja yang berbeda.
2) Lembar2, Lembar3, Lembar4 serta Sheet5 adalah lembar kerja yang berisi daftar drop-down yang ingin Anda sinkronkan berdasarkan daftar drop-down di Sheet1;
3) Untuk menambahkan lebih banyak lembar kerja dalam kode, tambahkan dua baris berikut sebelum baris “Application.EnableEvents = Benar”, lalu ganti nama sheet “Sheet5” untuk nama yang Anda butuhkan.
Setel tSheet1 = ActiveWorkbook.Worksheets("Sheet5")
tSheet1.Range(xRangeStr).Nilai = Target.Nilai

3. tekan lain + Q kunci untuk menutup Microsoft Visual Basic untuk Aplikasi jendela.

Mulai sekarang, ketika Anda memilih item dari daftar drop-down di lembar1, daftar drop-down di lembar kerja yang ditentukan akan disinkronkan secara otomatis untuk memiliki pilihan yang sama. Lihat demo di bawah ini.


Demo: Sinkronkan Daftar Drop-Down Di Beberapa Lembar Kerja Di Excel


Alat Produktivitas Kantor Terbaik

Kutools for Excel Memecahkan Sebagian Besar Masalah Anda, dan Meningkatkan Produktivitas Anda hingga 80%

  • Reuse: Masukkan dengan cepat rumus, bagan yang kompleks dan apa pun yang pernah Anda gunakan sebelumnya; Enkripsi Sel dengan kata sandi; Buat Milis dan mengirim email ...
  • Bilah Formula Super (dengan mudah mengedit beberapa baris teks dan rumus); Membaca Tata Letak (membaca dan mengedit sel dalam jumlah besar dengan mudah); Tempel ke Rentang yang Difilter...
  • Gabungkan Sel / Baris / Kolom tanpa kehilangan Data; Pisahkan Konten Sel; Gabungkan Baris / Kolom Duplikat... Mencegah Sel Duplikat; Bandingkan Rentang...
  • Pilih Duplikat atau Unik Baris; Pilih Baris Kosong (semua sel kosong); Temukan Super dan Temukan Fuzzy di Banyak Buku Kerja; Pilih Acak ...
  • Salinan Tepat Beberapa Sel tanpa mengubah referensi rumus; Buat Referensi Otomatis ke Beberapa Lembar; Sisipkan Poin, Kotak Centang, dan lainnya ...
  • Ekstrak Teks, Tambahkan Teks, Hapus berdasarkan Posisi, Hapus Space; Membuat dan Mencetak Subtotal Paging; Konversi Konten Antar Sel dan Komentar...
  • Filter Super (simpan dan terapkan skema filter ke sheet lain); Penyortiran Lanjutan menurut bulan / minggu / hari, frekuensi dan lainnya; Filter Khusus dengan huruf tebal, miring ...
  • Gabungkan Workbooks dan WorkSheets; Gabungkan Tabel berdasarkan kolom kunci; Pisahkan Data menjadi Beberapa Lembar; Konversi Batch xls, xlsx dan PDF...
  • Lebih dari 300 fitur canggih. Mendukung Office / Excel 2007-2021 dan 365. Mendukung semua bahasa. Penerapan yang mudah di perusahaan atau organisasi Anda. Fitur lengkap Uji coba gratis 30 hari. Jaminan uang kembali 60 hari.
tab kte 201905

Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah

  • Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
  • Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
  • Meningkatkan produktivitas Anda sebesar 50%, dan mengurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah
Urutkan komentar berdasarkan
komentar (5)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Hai,

Bagaimana saya bisa melakukan ini jika dropdown saya berada dalam rentang yang berbeda? Untuk menguraikan, saya memiliki satu drop down di sheet 7 yang ada di sel B7 dan dropdown yang sama di sheet 6 di sel B2.

Terima kasih,
Elaine
Komentar ini diminimalkan oleh moderator di situs
Hai E,
Kode VBA berikut dapat membantu.
Disini saya mengambil Sheet6 sebagai lembar kerja utama, klik kanan tab sheet, pilih View Code dari menu klik kanan, lalu salin kode berikut di jendela Sheet6 (Code). Ketika Anda memilih item dari daftar drop-down di B2 dari Sheet6, daftar drop-down di B7 dari Sheet7 akan disinkronkan untuk memiliki item yang dipilih yang sama.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221025
    Dim tSheet1 As Worksheet
    Dim tRange As Range
    Dim xRangeStr As String
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    
    xRangeStr = "B2"
    
    Set tRange = Range("B7")
    If Not tRange Is Nothing Then
        xRangeStr = tRange.Address
        Application.EnableEvents = False
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Application.EnableEvents = True
    End If
    
End Sub
Komentar ini diminimalkan oleh moderator di situs
Hai Kristal,

Terima kasih banyak atas tanggapan Anda, kode Anda berhasil! Saya memiliki sel tepat di bawah b2 dan b7, b3 dan b8 masing-masing yang harus memiliki fungsi yang sama. Saya mencoba menulis ulang kode Anda seperti yang ditunjukkan di bawah ini, namun ini tidak berhasil. Itu menyebabkan b7 bukannya b8 berubah ketika saya mengubah b3. Mungkin Anda dapat mengidentifikasi apa yang saya lakukan salah?

Terima kasih banyak!

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221025
    Dim tSheet1 As Worksheet
    Dim tRange1 As Range
    Dime tRange2 As Range
    Dim xRangeStr1 As String
    Dim xRangeStr2 As String
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    
    xRangeStr1 = "B2"
    xRangeStr2="B3"
    
    Set tRange1 = Range("B7")
    If Not tRange1 Is Nothing Then
        xRangeStr1 = tRange1.Address
        Application.EnableEvents = False
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
        tSheet1.Range(xRangeStr1).Value = Target.Value
        Application.EnableEvents = True
    End If
    
    Set tRange2 = Range("B8")
    If Not tRange2 Is Nothing Then
        xRangeStr2 = tRange2.Address
        Application.EnableEvents = False
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
        tSheet1.Range(xRangeStr2).Value = Target.Value
        Application.EnableEvents = True
    End If

End Sub
Komentar ini diminimalkan oleh moderator di situs
Hai E,
Ada yang salah dengan kode VBA yang saya balas di atas.
Untuk pertanyaan baru yang Anda sebutkan, silakan coba kode berikut.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221031
    
    Dim xBool1 As Boolean
    Dim xBool2 As Boolean
    Dim xRgStr As String
    Dim tRange As Range
    
    xRangeStr1 = "B2"
    xRangeStr2 = "B3"
    xRgStr = ""
    
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    xBool1 = Intersect(Target, Range(xRangeStr1)) Is Nothing
    xBool2 = Intersect(Target, Range(xRangeStr2)) Is Nothing
    
    If xBool1 And xBool2 Then Exit Sub
    
    xRgStr = Target.Address(False, False, xlA1, False, False)
    
    If Target.Address(False, False, xlA1, False, False) = xRangeStr1 Then
        xRgStr = "b7"
    ElseIf Target.Address(False, False, xlA1, False, False) = xRangeStr2 Then
        xRgStr = "b8"
    End If
    If xRgStr = "" Then Exit Sub
    
    Application.EnableEvents = False
    Set tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
    tSheet1.Range(xRgStr).Value = Target.Value
    Application.EnableEvents = True

End Sub
Komentar ini diminimalkan oleh moderator di situs
Kristal,

Terima kasih banyak atas tanggapan Anda, ini berhasil! Bagaimana saya bisa memodifikasi kode untuk menambahkan sel lain di lembar 6 yang sama, B3 yang juga perlu disinkronkan dengan B8 di lembar 7? Saya telah mencoba untuk memodifikasinya di bawah, namun akhirnya menempatkan isi B3 pada lembar 6 di B7 pada lembar 7 bukannya B8.


Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
'Diperbaharui oleh Extendoffice 20221025
Redupkan Lembar1 Sebagai Lembar Kerja
Redup tRange1 Sebagai Rentang
Redup tRange2 Sebagai Rentang
Redupkan xRangeStr1 Sebagai String
Redupkan xRangeStr2 Sebagai String
On Error Resume Next
Jika Target.Count > 1 Kemudian Keluar Sub

xRangeStr1 = "B2"
xRangeStr2 = "B3"

Setel tRange1 = Rentang("B7")
Jika Tidak tRange1 Tidak Ada Apa-apanya
xRangeStr1 = tRange1.Alamat
Application.EnableEvents = Salah
Setel tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
tSheet1.Range(xRangeStr1).Nilai = Target.Nilai
Application.EnableEvents = Benar
End If

Setel tRange2 = Rentang("B8")
Jika Tidak tRange2 Tidak Ada Apa-apanya
xRangeStr2 = tRange2.Alamat
Application.EnableEvents = Salah
Setel tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
tSheet1.Range(xRangeStr2).Nilai = Target.Nilai
Application.EnableEvents = Benar
End If

End Sub
Belum ada komentar yang diposting di sini
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan

Ikuti kami

Hak Cipta © 2009 - www.extendoffice.com. | Seluruh hak cipta. Dipersembahkan oleh ExtendOffice. | Peta Situs
Microsoft dan logo Office adalah merek dagang atau merek dagang terdaftar dari Microsoft Corporation di Amerika Serikat dan / atau negara lain.
Dilindungi oleh Sectigo SSL