Batasi tempel ke sel dropdown di excel

6

Saya memiliki satu lembar excel yang berisi banyak kolom dropdown. Katakanlah satu kolom memiliki Test1, Test2, dan Test3 sebagai nilai opsi dropdown. Sel-sel di bawah kolom ini tidak boleh menerima nilai-nilai selain dari ini. 3. Jika saya menyalin dan menempelkan 'XYZ' ke dalam sel-sel ini, seharusnya tidak menerima. Adakah yang bisa membantu saya bagaimana menangani ini?

Charan Raju C R
sumber

Jawaban:

7

Siapkan Validasi Data

Anda akan ingin menggunakan fitur Validasi Data di Excel untuk membatasi sel ke teks tertentu. Dalam kasus Anda: "Test1", "Test2", dan "Test3"

  1. Pilih sel yang seharusnya hanya menerima nilai "Test1", "Test2", dan "Test3"
  2. Di Data di tab Alat Data grup, klik Validasi data tombol.

    Data Validation Location in Office Ribbon

  3. Dalam Mengizinkan: tarik-turun, pilih Daftar

  4. Dalam Sumber: bidang, masukkan Test1, Test2, Test3

    Data Validation Settings

  5. Klik baik untuk menerapkan perubahan.

Pada titik ini, setiap sel yang Anda pilih pada Langkah 1 akan memiliki daftar drop-down yang terkait dengannya. Pengguna spreadsheet hanya akan bisa masuk Test1 , Test2 , atau Test3 . Jika mereka mencoba memasukkan hal lain, mereka akan mendapatkan pesan kesalahan berikut:

enter image description here

Anda dapat menyesuaikan teks pesan kesalahan, jika diinginkan, dengan mengklik Peringatan Kesalahan tab pada Langkah 4 dari atas.

Cegah Salin / Tempelkan Data Sel yang divalidasi

Ini akan bekerja dengan baik, KECUALI dalam kasus di mana seseorang menempelkan konten di atas sel. Satu-satunya cara untuk mencegah hal itu terjadi adalah dengan menulis makro yang mendeteksi pembaruan ke sel, menentukan apakah validasi data diaktifkan pada sel, dan kemudian menolak tempel jika benar.

  1. Pilih semua sel yang memiliki validasi data dan beri nama Rentang DataValidation . Anda bisa memberi nama rentang sel dengan mengetikkan nama di sebelah kiri bilah rumus, tempat alamat Cell berada.
  2. Dalam modul kode untuk lembar kerja (Sheet1, misalnya), tambahkan kode berikut:
Private Sub Worksheet_Change(ByVal Target As Range)
    'Does the validation range still have validation?
    If HasValidation(Range("DataValidationRange")) Then
        Exit Sub
    Else
        Application.Undo
        MsgBox "Error: You cannot paste data into these cells." & _
        "Please use the drop-down to enter data instead.", vbCritical
    End If
End Sub

Private Function HasValidation(r) As Boolean
    'Returns True if every cell in Range r uses Data Validation
    On Error Resume Next
    x = r.Validation.Type
    If Err.Number = 0 Then HasValidation = True Else HasValidation = False
End Function

Sayangnya, VBA adalah satu-satunya cara untuk mencegah seseorang menempelkan sel. Ini telah menjadi masalah dengan Validasi Data di Excel sejak awal. Semoga ini bisa membantu.


sumber
Hai Tyler, Terima kasih atas bantuan Anda. Ini berfungsi baik jika saya mengetik atau mengklik dua kali sel dan menempelkan nilai yang tidak valid. Tetapi tidak memberikan pesan kesalahan jika saya mengklik (tunggal) pada sel dan menempel.
Charan Raju C R
@ Charan Saya memperbarui jawaban dengan kode VBA yang diperlukan untuk menolak menempel. Sayangnya ini tidak dapat dilakukan tanpa VBA.
0

Solusi yang lebih sederhana adalah dengan hanya menonaktifkan menempel ke buku kerja sepenuhnya. Saya baru saja menemukan solusi untuk itu di sini: http://www.vbaexpress.com/kb/getarticle.php?kb_id=373

mjavon
sumber
Jawaban yang lebih baik akan berisi jawaban dan bukan hanya tautan ke sana.
Enigma
1
Selamat Datang di Pengguna Super! Bisakah kamu sunting jawaban Anda untuk memasukkan informasi yang relevan dari halaman tertaut? Ini memastikan jawaban Anda akan berguna bahkan jika halaman tertaut berubah atau menghilang. Terima kasih!
Excellll