Cercare testo negli intervalli di fogli di lavoro a livello di codice
Il Find metodo dell'oggetto Range consente di cercare testo all'interno dell'intervallo. Questo testo può anche essere una qualsiasi delle stringhe di errore che possono essere visualizzate in una cella del foglio di lavoro, #NULL!
ad esempio o #VALUE!
. Per altre informazioni sulle stringhe di errore, vedere Valori di errore cella.
Si applica a: le informazioni contenute in questo argomento si applicano ai progetti a livello di documento e ai progetti di componente aggiuntivo VSTO per Excel. Per altre informazioni, vedere Funzionalità disponibili per app Office lication e tipo di progetto.
Nell'esempio seguente viene eseguita una ricerca in un intervallo denominato Fruits
e viene modificato il tipo di carattere per le celle che contengono la parola "apples". Questa procedura usa anche il FindNext metodo , che usa le impostazioni di ricerca impostate in precedenza per ripetere la ricerca. Specificare la cella dopo la quale eseguire la ricerca e il FindNext metodo gestisce il resto.
Nota
La FindNext ricerca del metodo esegue il wrapping all'inizio dell'intervallo di ricerca dopo aver raggiunto la fine dell'intervallo. Il codice deve garantire che la ricerca non venga eseguita in un ciclo infinito. La procedura di esempio mostra un modo per gestire questa operazione usando la Address[] proprietà .
Per cercare testo in un intervallo di fogli di lavoro
Dichiarare le variabili per tenere traccia dell'intero intervallo, del primo intervallo trovato e dell'intervallo trovato corrente.
Cercare la prima corrispondenza, specificando tutti i parametri tranne la cella in cui eseguire la ricerca.
Continuare la ricerca finché sono presenti corrispondenze.
Confrontare il primo intervallo trovato (
firstFind
) con Nothing. SefirstFind
non contiene alcun valore, il codice archivia l'intervallo trovato (currentFind
).Uscire dal ciclo se l'indirizzo dell'intervallo trovato corrisponde all'indirizzo del primo intervallo trovato.
Impostare l'aspetto dell'intervallo trovato.
Eseguire un'altra ricerca.
L'esempio seguente mostra il metodo completo.
Esempio
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);
}
}