Gary ha un foglio di lavoro che contiene stringhe di testo non strutturate che deve analizzare negli elementi componenti. A volte ha bisogno di cercare tipi di testo piuttosto che un carattere specifico. Ad esempio, potrebbe voler trovare la prima, l’ennesima o l’ultima occorrenza di qualsiasi carattere in grassetto (o in corsivo) nella cella.

Non esistono funzioni o strumenti intrinseci in Excel per eseguire questa operazione.

La normale funzione Trova e sostituisci restituisce le corrispondenze per la formattazione, ma non la posizione in cui si verificano tali corrispondenze. Per ottenere informazioni specifiche su ciò che desideri trovare, dovrai utilizzare una macro. È possibile ripristinare le informazioni sul posizionamento nel foglio di lavoro se si implementa la macro come funzione definita dall’utente.

La seguente macro accetta un intervallo (destinato a essere una cella specifica), un indicatore se si desidera il grassetto o il corsivo (o entrambi) e l’occorrenza di quella formattazione.

Function FindNth(r As Range, sType As String, N As Integer) As Integer     Dim J As Integer     Dim iCount As Integer     Dim sStyle As String          If r.Count = 1 Then         FindNth = 0         iCount = 0         For J = 1 To Len(r.Text)

sStyle = r.Characters(J, 1).Font.FontStyle             If LCase(sStyle) = LCase(sType) Then                 iCount = iCount + 1                 If N = 0 Then                     FindNth = J                 Else                     If N = iCount Then                         FindNth = J                         Exit For                     End If                 End If             End If         Next J     Else         FindNth = -1     End If End Function

Per utilizzare la macro, utilizza una delle seguenti formule nel tuo foglio di lavoro:

=FindNth(A1, "bold", 2)

=FindNth(A1, "italic", 3)

=FindNth(A1, "bold italic", 1)

In ogni caso, il terzo parametro specifica quale occorrenza della formattazione data si desidera trovare. La funzione restituisce la posizione del carattere di tale occorrenza all’interno della cella. Se non si verifica tale occorrenza, viene restituito 0. Se specifichi più celle nel primo parametro della funzione, restituisce -1. Se si specifica un’occorrenza di 0, viene restituita la posizione del carattere dell’ultima occorrenza del formato specificato.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (13402) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.