Daftar Isi
Dalam artikel ini, saya akan menunjukkan kepada Anda bagaimana Anda dapat menganalisis situasi di Excel VBA Anda akan belajar menganalisis situasi untuk nilai apa pun dan nilai tertentu.
Analisis VBA Excel: Jika Sel Berisi Nilai maka (Tampilan Cepat)
Sub If_Cell_Contains_Value() Set Cell = Range("C12").Cells(1, 1) If Cell.Value "" Then MsgBox "Jennifer Marlo muncul dalam ujian Fisika." End If End Sub
Unduh Buku Kerja Praktik
Unduh buku kerja latihan ini untuk latihan saat Anda membaca artikel ini.
VBA Jika Sel Berisi Nilai Maka.xlsmAnalisis VBA Excel: Jika Sel Berisi Nilai Kemudian Kembalikan Output (Analisis Langkah demi Langkah)
Di sini kita punya satu set data dengan nilai beberapa siswa di bidang Fisika, Kimia, dan Matematika di sebuah sekolah bernama Sunflower Kindergarten.
Sel-sel kosong berarti bahwa siswa tidak muncul, yaitu, tidak hadir dalam ujian tertentu. Sekarang mari kita analisis situasinya, apakah sel berisi nilai atau tidak, dengan kumpulan data ini.
⧪ Langkah 1: Mendeklarasikan Sel
Pertama, kita harus mendeklarasikan sel yang nilainya ingin kita analisis. Mari kita analisis apakah Jennifer Marlo muncul dalam ujian Fisika atau tidak.
Oleh karena itu, kita perlu memeriksa apakah sel C12 mengandung nilai atau tidak.
Untuk melakukan itu, pertama-tama, kita harus mendeklarasikan sel C12 .
Baris kode untuk mencapai hal ini adalah:
Set Cell = Range ("C12").Cells(1, 1)
⧪ Langkah 2: Memeriksa Apakah Sel Berisi Nilai (Termasuk Nilai Tertentu)
Selanjutnya, kita harus memeriksa apakah sel tersebut berisi nilai atau tidak. Kita akan mengeksekusi ini menggunakan Jika kondisi Baris kode akan menjadi:
Jika Cell.Value "" Lalu
Kode ini akan dieksekusi jika sel berisi nilai apa pun. Untuk memeriksa nilai (Misalnya, apakah berisi 100 atau tidak), gunakan nilai spesifik itu dengan Sama dengan simbol.
Jika Cell.Value "" Lalu
⧪ Langkah 3: Mengalokasikan Tugas
Kemudian Anda harus menyiapkan tugas yang akan dieksekusi jika sel berisi nilai (atau nilai tertentu).
Di sini, kita ingin menampilkan pesan "Jennifer Marlo muncul dalam ujian Fisika." Jadi baris kodenya adalah:
MsgBox "Jennifer Marlo muncul dalam ujian Fisika."
⧪ Langkah 4: Mengakhiri Blok If
Akhirnya, Anda harus mendeklarasikan akhir dari blok If.
Akhiri Jika
Jadi lengkap VBA kode akan menjadi:
⧭ Kode VBA:
Sub If_Cell_Contains_Value() Set Cell = Range("C12").Cells(1, 1) If Cell.Value "" Then MsgBox "Jennifer Marlo muncul dalam ujian Fisika." End If End Sub
⧭ Keluaran:
Jalankan kode ini dengan mengklik tombol Jalankan Sub/UserForm pada bilah alat.
Ini akan menampilkan pesan "Jennifer Marlo muncul dalam ujian Fisika." sebagai sel C12 mengandung nilai, dari 50 .
Contoh yang Melibatkan Jika Sel Berisi Nilai Kemudian Output yang Ditentukan dengan Excel VBA
Kita telah belajar menganalisis apakah sebuah sel mengandung nilai atau tidak dalam VBA Sekarang, mari kita jelajahi beberapa contoh untuk memperjelas pemahamannya.
1. Mengembangkan Makro untuk Menyaring Nilai Jika Sel yang Sesuai Berisi Nilai apa pun maka di Excel VBA
Mari kita kembangkan Makro untuk menyaring siswa yang muncul di setiap ujian.
Artinya, kita harus memeriksa sel yang berisi nilai dari masing-masing mata pelajaran dan melihat apakah sel tersebut mengandung nilai atau tidak.
Jika ya, maka kita harus memilah nama siswa yang bersangkutan.
Lengkap VBA kode untuk mencapai hal ini adalah:
⧭ Kode VBA:
Sub Sorting_Out_Cells_that_Contain_Values() Starting_Cell = InputBox("Masukkan Referensi Sel Pertama dari Data yang Difilter: ") For i = 2 To Selection.Columns.Count Range(Starting_Cell).Cells(1, i - 1) = Selection.Cells(1, i) Next i Count = 2 For i = 2 To Selection.Columns.Count For j = 2 To Selection.Rows.Count Set Cell = Selection.Cells(j, i) If Cell.Value "" ThenRange(Starting_Cell).Cells(Count, i - 1) = Selection.Cells(j, 1).Value Count = Count + 1 End If Next j Count = 2 Next i End Sub
⧭ Keluaran:
Pilih kumpulan data (Termasuk Tajuk ) dan jalankan ini Makro .
Pertama, Anda akan diminta untuk memasukkan referensi sel pertama di mana Anda menginginkan data yang difilter. Saya telah memasukkan G3 .
Kemudian klik OK Anda akan mendapatkan nama-nama siswa yang muncul dalam setiap ujian (Termasuk Tajuk ) dalam set data baru mulai dari sel G3 .
2. Membuat Fungsi yang Ditentukan Pengguna untuk Mengurutkan Nilai Jika Sel yang Sesuai Berisi Nilai Tertentu maka di Excel VBA
Sekarang kita akan membuat fungsi yang ditentukan pengguna yang akan mengembalikan nama-nama siswa yang mendapat nilai tertentu di setiap mata pelajaran.
Prosedurnya hampir sama dengan yang di atas. Kita harus memeriksa sel yang berisi nilai dari masing-masing mata pelajaran dan melihat apakah mereka sama dengan nilai tertentu atau tidak.
Jika ya, maka kita akan mengembalikan nama siswa yang bersangkutan.
The VBA kode akan menjadi:
⧭ Kode VBA:
Function Cells_with_Values(Rng As Range, Data As Variant) Dim Output() As Variant ReDim Output(Rng.Rows.Count, Rng.Columns.Count - 1) For i = 0 To Rng.Columns.Count - 2 Output(0, i) = Rng.Cells(1, i + 2) Next i Count = 1 For i = 2 To Rng.Columns.Count For j = 2 To Rng.Rows.Count Set Cell = Rng.Cells(j, i) If Cell.Value = Data Then Output(Count, i - 2) =Rng.Cells(j, 1).Value Count = Count + 1 End If Next j Count = 1 Next i For i = LBound(Output, 1) To UBound(Output, 1) For j = LBound(Output, 2) To UBound(Output, 2) If Output(i, j) = 0 Then Output(i, j) = "" End If Next j Next i Cells_with_Values = Output End Function
⧭ Keluaran:
Kode ini menciptakan fungsi yang disebut Sel_dengan_Nilai yang mengambil dua argumen, sebuah Rentang dan Nilai .
Mari kita cari tahu siswa yang mendapat nilai 100 di setiap mata pelajaran menggunakan fungsi ini.
Pilih rentang sel di lembar kerja Anda dan masukkan fungsi ini di sel pertama rentang tersebut:
=Cells_with_Values(B3:E13,100)
[Di sini B3:E3 adalah kumpulan data saya (Termasuk Tajuk ) dan 100 adalah nilai yang cocok denganku. Kamu gunakan yang kamu miliki].
Kemudian tekan CTRL + SHIFT + ENTER ( Rumus Larik Ini akan mengembalikan sebuah array yang terdiri dari nama-nama siswa yang mendapat nilai 100 dalam setiap mata pelajaran, termasuk Tajuk .
3. Mengembangkan UserForm untuk Mengekstrak Nilai jika Sel yang Sesuai Berisi Nilai apa pun (Atau Nilai Tertentu) di Excel VBA
Akhirnya, kita akan mengembangkan UserForm untuk mengekstrak nama-nama siswa yang muncul (atau mendapat nilai tertentu) dalam beberapa ujian tertentu.
⧪ Langkah 1: Membuka UserForm
Pergi ke Sisipkan> UserForm opsi di dalam VBA editor untuk membuka UserForm . UserForm disebut UserForm1 akan dibuka.
⧪ Langkah 2: Menyeret Alat ke UserForm
Selain itu UserForm , Anda akan mendapatkan Kotak Alat Pindahkan kursor Anda ke atas Kotak Alat dan seret 4 Label (Label1, Label2, Label3, Label4) dan 3 Kotak Daftar (Kotak Daftar1, Kotak Daftar2, Kotak Daftar3) dan Kotak Teks (Kotak Teks1) dalam bentuk persegi panjang di atas UserForm .
Kemudian seret yang lain Label (Label5) dan Kotak Teks (Kotak Teks2) ke sudut kiri bawah dari UserForm .
Terakhir, seret CommandButton (CommandButton1) ke sudut kanan bawah.
Mengubah tampilan dari Label untuk Kolom Pencarian , Kolom Pengembalian , Nilai apa pun atau Nilai Tertentu , Nilai, dan Sel awal.
Selain itu, ubah tampilan CommandButton1 untuk OK .
⧪ Langkah 3: Menulis kode untuk ListBox3
Klik dua kali pada ListBox3 . A Subprosedur Pribadi disebut ListBox3_Click akan terbuka. Masukkan kode berikut di sana.
Private Sub ListBox3_Click() If UserForm1.ListBox3.Selected(0) = True Then UserForm1.Label4.Visible = False UserForm1.TextBox1.Visible = False ElseIf UserForm1.ListBox3.Selected(1) = True Then UserForm1.Label4.Visible = True UserForm1.TextBox1.Visible = True End If End Sub
⧪ Langkah 4: Menulis kode untuk CommandButton1
Kemudian klik dua kali pada CommandButton1 . lain Subprosedur Pribadi disebut CommandButton1_Click akan terbuka. Masukkan kode berikut di sana.
Private Sub CommandButton1_Click() On Error GoTo Message Starting_Cell = UserForm1.TextBox2.Text Count1 = 1 For i = 1 To Selection.Columns.Count If UserForm1.ListBox1.Selected(i - 1) = True Then Range(Starting_Cell).Cells(1, Count1) = Selection.Cells(1, i) Count1 = Count1 + 1 End If Next i If Count1 = 1 Then MsgBox "Pilih Setidaknya Satu Kolom Pencarian.", vbExclamation ExitSub End If Data_Selected = 0 For i = 1 To Selection.Columns.Count If UserForm1.ListBox2.Selected(i - 1) = True Then Data_Selected = i Exit For End If Next i If Data_Selected = 0 Then MsgBox "Select One Return Column.", vbExclamation Exit Sub End If Count2 = 1 Count3 = 2 For i = 1 To Selection.Columns.Count If UserForm1.ListBox1.Selected(i - 1) = True Then For j= 2 To Selection.Rows.Count Set Cell = Selection.Cells(j, i) If UserForm1.ListBox3.Selected(0) = True Then If Cell.Value "" Then Range(Starting_Cell).Cells(Count3, Count2) = Selection.Cells(j, Data_Selected).Value Count3 = Count3 + 1 End If ElseIf UserForm1.ListBox3.Selected(1) = True ThenIf Cell.Value = UserForm1.TextBox1.Text Then Range(Starting_Cell).Cells(Count3, Count2) = Selection.Cells(j, Data_Selected).Value Count3 = Count3 + 1 End If Else MsgBox "Pilih Nilai Apa Saja atau Nilai Tertentu.", vbExclamation Exit For End If Next j Count3 = 2 Count2 = Count2+ 1 End If Next i Exit Sub Message: MsgBox "Masukkan Referensi Sel yang Valid sebagai Sel Awal.", vbExclamation End Sub
⧪ Langkah 5: Menulis kode untuk menjalankan UserForm
Terakhir, sisipkan Modul dari Bilah alat VBA dan menyisipkan kode berikut ini di sana.
Sub Run_UserForm() UserForm1.Caption = "Memfilter Sel yang Berisi Nilai" UserForm1.ListBox1.BorderStyle = fmBorderStyleSingle UserForm1.ListBox1.ListStyle = fmListStyleOption UserForm1.ListBox2.BorderStyle = fmBorderStyleSingle UserForm1.ListBox2.ListStyle = fmListStyleOption UserForm1.ListBox3.BorderStyle = fmBorderStyleSingle UserForm1.ListBox3.ListStyle = fmListStyleOption For i = 1 ToSelection.Columns.Count UserForm1.ListBox1.AddItem Selection.Cells(1, i) UserForm1.ListBox2.AddItem Selection.Cells(1, i) Next i UserForm1.ListBox1.MultiSelect = fmMultiSelectMulti UserForm1.ListBox3.AddItem "Any Value" UserForm1.ListBox3.AddItem "Specific value" UserForm1.Label4.Visible = False UserForm1.TextBox1.Visible = False Load UserForm1 UserForm1.Show End Sub
⧪ Langkah 6: Menjalankan UserForm (Output Akhir)
Anda UserForm sekarang siap digunakan. Pilih kumpulan data dari lembar kerja ( B3:E13 di sini) (Termasuk Tajuk ) dan jalankan Makro disebut Run_UserForm .
The UserForm akan dimuat dalam lembar kerja. Dari Kolom Pencarian tabel, saya telah memilih Fisika dan Matematika karena saya ingin mendapatkan nama-nama siswa yang muncul di Fisika dan Matematika ujian.
Dari Kolom Pengembalian tabel, saya telah memilih Nama Siswa karena saya ingin mendapatkan nama-nama siswa.
Dan dari Nilai apa pun atau Nilai Tertentu tabel, saya telah memilih Nilai apa pun .
Akhirnya, dalam Sel Awal kotak, saya telah meletakkan G3 .
Kemudian klik OK Anda akan mendapatkan nama-nama siswa yang muncul di Fisika dan Matematika ujian dimulai dari sel G3 .
Jika Anda telah memilih Nilai Khusus dari Nilai apa pun atau Nilai Tertentu tabel, Anda akan mendapatkan yang lain Kotak Teks untuk memasukkan nilai spesifik.
Di sini saya sudah masuk 100 .
Klik OK Dan Anda akan mendapatkan siswa yang mendapat 100 di Fisika dan Kimia .
Hal-hal yang Perlu Diingat
Kita menggunakan larik dua-dimensi untuk mengembalikan nama-nama siswa di dalam Fungsi yang Ditentukan Pengguna dijelaskan dalam contoh 2 .