Mencari Teks dalam rentang lembar kerja secara terprogram
Metode Find Range objek memungkinkan Anda mencari teks dalam rentang. Teks ini juga bisa menjadi salah satu string kesalahan yang bisa muncul di sel lembar kerja seperti #NULL!
atau #VALUE!
. Untuk informasi selengkapnya tentang string kesalahan, lihat Nilai kesalahan sel.
Berlaku untuk: Informasi dalam topik ini berlaku untuk proyek tingkat dokumen dan proyek Add-in VSTO untuk Excel. Untuk informasi selengkapnya, lihat Fitur yang tersedia berdasarkan aplikasi Office likasi dan jenis proyek.
Contoh berikut mencari rentang bernama Fruits
dan memodifikasi font untuk sel yang berisi kata "apel". Prosedur ini juga menggunakan FindNext metode , yang menggunakan pengaturan pencarian yang ditetapkan sebelumnya untuk mengulangi pencarian. Anda menentukan sel setelahnya untuk dicari, dan FindNext metode menangani sisanya.
Catatan
Pencarian FindNext metode membungkus kembali ke awal rentang pencarian setelah mencapai akhir rentang. Kode Anda harus memastikan bahwa pencarian tidak terbungkus dalam perulangan tak terbatas. Prosedur sampel menunjukkan salah satu cara untuk menangani ini menggunakan Address[] properti .
Untuk mencari teks dalam rentang lembar kerja
Deklarasikan variabel untuk melacak seluruh rentang, rentang pertama yang ditemukan, dan rentang yang ditemukan saat ini.
Cari kecocokan pertama, menentukan semua parameter kecuali sel yang akan dicari.
Lanjutkan pencarian selama ada kecocokan.
Bandingkan rentang pertama yang ditemukan (
firstFind
) dengan Tidak Ada. JikafirstFind
tidak berisi nilai, kode akan menyimpan rentang yang ditemukan (currentFind
).Keluar dari perulangan jika alamat rentang yang ditemukan cocok dengan alamat rentang pertama yang ditemukan.
Atur tampilan rentang yang ditemukan.
Lakukan pencarian lain.
Contoh berikut menunjukkan metode lengkap.
Contoh
private void DemoFind()
{
Excel.Range currentFind = null;
Excel.Range firstFind = null;
Excel.Range Fruits = Application.get_Range("A1", "B3");
// You should specify all these parameters every time you call this method,
// since they can be overridden in the user interface.
currentFind = Fruits.Find("apples", missing,
Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart,
Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false,
missing, missing);
while(currentFind != null)
{
// Keep track of the first range you find.
if (firstFind == null)
{
firstFind = currentFind;
}
// If you didn't move to a new range, you are done.
else if (currentFind.get_Address(Excel.XlReferenceStyle.xlA1)
== firstFind.get_Address(Excel.XlReferenceStyle.xlA1))
{
break;
}
currentFind.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
currentFind.Font.Bold = true;
currentFind = Fruits.FindNext(currentFind);
}
}