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?
Anda akan ingin menggunakan fitur Validasi Data di Excel untuk membatasi sel ke teks tertentu. Dalam kasus Anda: "Test1", "Test2", dan "Test3"
Pilih sel yang seharusnya hanya menerima nilai "Test1", "Test2", dan "Test3"
Di Data di tab Alat Data grup, klik Validasi data tombol.
Dalam Mengizinkan: tarik-turun, pilih Daftar
Dalam Sumber: bidang, masukkan Test1, Test2, Test3
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:
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.
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.
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.
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.
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!
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
sumber