Çalışma sayfası aralıklarındaki Metinleri program aracılığıyla arama

Find nesnesinin Range yöntemi, aralık içindeki metinleri aramanızı sağlar. Bu metin, veya #VALUE!gibi #NULL! bir çalışma sayfası hücresinde görüntülenebilen hata dizelerinden herhangi biri de olabilir. Hata dizeleri hakkında daha fazla bilgi için bkz . Hücre hata değerleri.

Şunlar için geçerlidir: Bu konudaki bilgiler, Excel için belge düzeyi projeler ve VSTO Eklenti projeleri için geçerlidir. Daha fazla bilgi için bkz. Office uygulaması ve proje türüne göre kullanılabilen özellikler.

Aşağıdaki örnek adlı Fruits bir aralığı arar ve "elmalar" sözcüğünü içeren hücreler için yazı tipini değiştirir. Bu yordam, aramayı yinelemek FindNext için önceden ayarlanmış arama ayarlarını kullanan yöntemini de kullanır. Aramadan sonra aranacak hücreyi belirtirsiniz ve FindNext yöntem gerisini işler.

Not

Yöntemin FindNext araması, aralığın sonuna ulaştıktan sonra arama aralığının başına geri kaydırılır. Kodunuz, aramanın sonsuz bir döngü içinde kaydırılmadığından emin olmalıdır. Örnek yordam, özelliğini kullanarak bunu işlemenin Address[] bir yolunu gösterir.

Çalışma sayfası aralığında metin aramak için

  1. Aralığın tamamını, ilk bulunan aralığı ve geçerli bulunan aralığı izlemek için değişkenleri bildirin.

    Excel.Range currentFind = null; 
    Excel.Range firstFind = null;
    
  2. arama yapılacak hücre dışındaki tüm parametreleri belirterek ilk eşleşmeyi arayın.

    currentFind = Fruits.Find("apples", missing,
        Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, 
        Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false,
        missing, missing);
    
  3. Eşleşmeler olduğu sürece aramaya devam edin.

    while(currentFind != null)
    
  4. bulunan ilk aralığı (firstFind) Hiçbir şey ile karşılaştırın. Değer içermiyorsa firstFind , kod bulunan aralığı (currentFind ) depolar.

    if (firstFind == null)
    {
        firstFind = currentFind; 
    }
    
  5. Bulunan aralığın adresi ilk bulunan aralığın adresiyle eşleşiyorsa döngüden çıkın.

    else if (currentFind.get_Address(Excel.XlReferenceStyle.xlA1)
          == firstFind.get_Address(Excel.XlReferenceStyle.xlA1))
    {
        break;
    }
    
  6. Bulunan aralığın görünümünü ayarlayın.

    currentFind.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
    currentFind.Font.Bold = true;
    
  7. Başka bir arama yapın.

    currentFind = Fruits.FindNext(currentFind);
    

    Aşağıdaki örnekte tam yöntem gösterilmektedir.

Örnek

    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); 
        }
    }