Aggiunta di testo formattato in modo diverso a una cella (Microsoft Excel)
Larry è stato incaricato di sostituire o aggiungere testo a ogni cella in una colonna in diverse cartelle di lavoro di Excel. Il problema è che questo nuovo testo deve essere sottolineato e di un colore diverso. Trova e sostituisci sottolinea e colora tutto il testo nelle celle, ma Larry ha bisogno che la formattazione si applichi solo al testo aggiunto.
Se devi eseguire questo tipo di attività solo poche volte, la soluzione più semplice potrebbe essere quella di avvalerti dell’aiuto di Microsoft Word. È possibile copiare l’intervallo di celle in un documento di Word, utilizzare le funzionalità Trova e sostituisci di Word per apportare le modifiche alla formattazione e quindi copiare nuovamente il testo nel foglio di lavoro di Excel.
Se devi eseguire questa operazione più spesso, l’approccio migliore è utilizzare una macro. La seguente macro può essere utilizzata per modificare il testo nelle celle di una colonna o per aggiungere testo alle celle.
Sub AddFormatedText() Dim K As Long Dim lCol As Long Dim LastRow As Long Dim sFind As String Dim sReplace As String Dim FullCells As Range Dim c As Range ' Column to work on lCol = 1 ' Text to be replaced in the cell ' If this variable is empty, then ' the contents of sReplace are added ' to the end of the cell sFind = "" ' Text to replace sFind or to add to the cell sReplace = "More Text" ' Find last row in column A LastRow = Cells(Rows.Count, "A").End(xlUp).Row ' Set range to check Set FullCells = Range(Cells(1, lCol), Cells(LastRow, lCol)) ' Start looking through each cell For Each c In FullCells K = 0 ' Only check if there is not a formula in the cell ' and if the cell has some text in it If Not c.HasFormula And Len(c.Text) > 0 Then If sFind > "" Then ' Replace first found instance of text in sFind K = InStr(c.Text, sFind) If K > 0 Then c = Left(c.Text, K - 1) & sReplace & _ Mid(c.Text, K + Len(sFind)) End If Else K = Len(c.Text) ' Add the text to the cell (plus a space) c = c & " " & sReplace ' Adjust starting position for formatting K = K + 2 End If End If ' Format the added text, if any If K > 0 Then With c.Characters(Start:=K, Length:=Len(sReplace)).Font .Underline = xlUnderlineStyleSingle .Color = vbRed End With End If Next c End Sub
Ci sono tre modifiche che devi fare per usare la macro. Il primo è assicurarsi che la variabile lCol sia impostata sul numero di colonna che si desidera modificare. Secondo, dovresti impostare sFind uguale al testo che vuoi trovare e sostituire nelle celle. Puoi, se lo desideri, lasciare vuoto sFind (come sopra) se vuoi solo aggiungere del testo alla cella.
Infine, è necessario impostare sReplace uguale a ciò che si desidera sostituire con sFind o a ciò che si desidera aggiungere alle celle.
La macro esamina ogni cella nella colonna specificata e, se la cella non contiene una formula e contiene già del testo, sostituisce o aggiunge il testo. Infine, se è stata apportata una modifica alla cella, tutto ciò che era in sReplace viene sottolineato e reso rosso. Si noti che se viene apportata una modifica alla cella, qualsiasi formattazione esistente nella cella viene sovrascritta dalla modifica apportata.
_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 (9302) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.