Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Find Metoda Range obiektu umożliwia wyszukiwanie tekstu w zakresie. Ten tekst może być również dowolnymi ciągami błędów, które mogą pojawić się w komórce arkusza, takiej jak #NULL!
lub #VALUE!
. Aby uzyskać więcej informacji na temat ciągów błędów, zobacz Wartości błędów komórek.
Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu i projektów dodatków VSTO dla programu Excel. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.
Poniższy przykład wyszukuje zakres o nazwie Fruits
i modyfikuje czcionkę dla komórek zawierających wyraz "apples". Ta procedura używa FindNext również metody , która używa poprzednio ustawionych ustawień wyszukiwania, aby powtórzyć wyszukiwanie. Należy określić komórkę, po której ma być wyszukiwana, a FindNext metoda obsługuje resztę.
Uwaga
FindNext Wyszukiwanie metody opakowuje się z powrotem na początku zakresu wyszukiwania po osiągnięciu końca zakresu. Kod musi upewnić się, że wyszukiwanie nie owija się w nieskończonej pętli. Przykładowa procedura przedstawia jeden ze sposobów obsługi tej metody przy użyciu Address[] właściwości .
Aby wyszukać tekst w zakresie arkusza
Zadeklaruj zmienne do śledzenia całego zakresu, pierwszego znalezionego zakresu i bieżącego znalezionego zakresu.
Wyszukaj pierwsze dopasowanie, określając wszystkie parametry z wyjątkiem komórki do wyszukania.
Kontynuuj wyszukiwanie tak długo, jak istnieją dopasowania.
Porównaj pierwszy znaleziony zakres (
firstFind
) z wartością Nic. JeślifirstFind
nie zawiera żadnej wartości, kod przechowuje znaleziony zakres (currentFind
).Zakończ pętlę, jeśli adres znalezionego zakresu jest zgodny z adresem pierwszego znalezionego zakresu.
Ustaw wygląd znalezionego zakresu.
Wykonaj inne wyszukiwanie.
Poniższy przykład przedstawia kompletną metodę.
Przykład
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);
}
}