Excel - Pertanyaan Carian & Paparan

Isu

Saya orang bukan IT .. Saya mempunyai keperluan yang mudah, tetapi tidak tahu bagaimana untuk pergi.

Keperluannya ialah

 Data saya. Sno Pelepasan Projek Hubungi orang 1 Apr SYL Sam, Mark, Tom 2 Mei Xim Tom, Frank, Kim 3 Jun TIG Kim, David, Sam 

Keperluan saya adalah apabila saya mencari melalui projek atau melalui pembebasan,, saya perlu mendapatkan semua nama kenalan orang itu .. Dengan cara yang sama jika saya cari dengan nama orang kenalan .. Eg Sam dalam contoh di atas .. Excel telah menunjukkan kepada saya semua projek yang melibatkan Sam dengan semua data yang berkaitan seperti Pelepasan dan lain-lain ... Ini perlu dipaparkan dalam lembaran baru dalam kecemerlangan.

Adakah mungkin dilakukan di Excel atau saya perlu mencuba sesuatu yang lain? Bolehkah anda membantu saya dalam melakukan ini?

Penyelesaian

Andaian:

  • 1. Nama kunci di mana data adalah "Sheet1" (membetulkan kod jika tidak)
  • 2. Nama kunci di mana hasil carian akan disisipkan adalah "Hasil" (membetulkan kod jika tidak)
  • 3. Keputusan carian terdahulu akan dibuang
  • 4. Data berada pada 4 lajur (seperti dalam sampel)

LANGKAH-LANGKAH:

  • 1. Baca Assumptions
  • 2. Buat sandaran
  • 3. Tekan ALT + F11 pada masa yang sama untuk memasukkan persekitaran VBE
  • 4. Klik pada "Sisipkan" dan tambahkan modul baru
  • 5. Sisipkan kod (selepas arahan)
  • 6. Jalankan kod tersebut

Kod:

 Sub CarianData () Dim lMaxRows Sebagai panjang 'jumlah maksimum baris data berdasarkan sel-sel yang digunakan pada lajur A Dim lFilterRows Sebagai Long' terakhir ditapis baris Dim searchRel Sebagai Variant 'apa yang akan mencari Maklumat Siaran Dim searchProj Sebagai Variant' apa itu untuk mencari Maklumat Projek Dim searchPpl Sebagai Varians 'apa yang akan dicari Maklumat Hubungan Dim sDataSheet Sebagai nama String' lembaran data Dim sResultSheet Sebagai nama String lembaran hasil sDataSheet = "Sheet1" 'nama lembar data sResultSheet = "Hasil" 'nama lembaran hasil' mendapatkan kriteria carian cariRel = InputBox ("Pelepasan Apa yang anda ingin cari Untuk melangkau, tekan OK.") searchProj = InputBox ("Projek Apa yang hendak dicari., hanya tekan OK. ") searchPpl = InputBox (" Orang yang hendak dihubungi untuk melangkaui, tekan OK. ") 'menghapus ruang putih searchRel = Trim (searchRel) searchProj = Trim (searchProj) ) 'jika ketiga-tiga kriteria carian kosong maka jangan melakukan apa-apa Jika (Len (searchRel & searchProj & searchPpl) = 0) Kemudian Keluar Sub Error Ralat Lanjut Aplikasi.DisplayAlerts = Palsu 'hapus lembaran hasil sebelumnya jika ada Helaian (sResultSheet) .Delete Application.DisplayAlerts = Benar Pada Ralat GoTo 0' ActiveSheet.Name = SResultSheet Sheet (sDataSheet). Pilih Cells.Select 'menghapus sebarang penapis Jika ActiveSheet.AutoFilterMode Kemudian Pada Ralat Ralat Aktifkan Selanjutnya AktifSheet.ShowAllData Pada Kesalahan GoTo 0 Akhir Jika lMaxRows = Sel (Rows.Count, "A"). (xlUp) .Row Jika ActiveSheet.AutoFilterMode = False Then Selection.AutoFilter End If If (searchRel) "" Kemudian Selection.AutoFilter Field: = 2, Criteria1: = "=" & searchRel, Operator: = xlAnd, Criteria2: = " "End If If (searchProj)" "Kemudian Selection.AutoFilter Field: = 3, Criteria1: =" = "& searchProj, Operator: = xlAnd, Criteria2: =" "End If If (searchPpl)" "Then Selection.AutoFilter Field == Kriteria1: = "= *" & searchPpl & "*", Operator: = xlAnd, Criteria2: = "" Akhir Jika lFilterRows = Sel (Rows.Count, "A" ("A1: D" & lFilterRows) .Copy Sheets (sResultSheet). Pilih Range ("A1"). Pilih ActiveSheet.Paste Sheet (sDataSheet). Pilih Sel.Pilih 'menghapuskan sebarang penapis Jika ActiveSheet.AutoFilterMode Kemudian Ralat Terlalu AktifSheet.ShowAllData Pada Kesalahan GoTo 0 End If End Sub 

Catatan

Terima kasih kepada rizvisa1 untuk tip ini di forum.

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama