18. august 2011 - 14:24
Der er
3 kommentarer og 1 løsning
Ændrer formatering af ET ord i en sætning, via replace applicationen
Hej eksperter, Jeg har lavet en lille kode, som gennemsøger et output ark for ord der er listet i et input ark. Alle de fundne ord skal erstattes af samme ord, men med kursiv format, sådan at jeg sikrer, at alle forekomster af dette ord er skrevet med kursiv. Problem: replace applicationen ændrer formattet på hele cellen og ikke kun på det pågældende ord. Følgende ark er nødvendige: 1) input (indeholder liste af ord som der søges efter) 2) output (indeholder en masse tekst, hvori der søges og erstattes) *** KODE *** Sub autoKursiv() Dim forkortelse As String Dim examinedRow As Integer examinedRow = 0 Worksheets("input").Select Range("A1").Select Do examinedRow = examinedRow + 1 ActiveCell.Offset(1, 0).Select forkortelse = ActiveCell.Value Worksheets("output").Select Cells.Select With Application.ReplaceFormat.Font .FontStyle = "Kursiv" .Subscript = False .TintAndShade = 0 End With Cells.Replace What:=forkortelse, Replacement:=forkortelse, LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=True Worksheets("status").Select Range("A1").Offset(examinedRow, 0).Select Loop Until IsEmpty(ActiveCell.Offset(1, 0)) End Sub *** END KODE *** Spørgsmål: Hvad gør jeg forkert? Med venlig hilsen NPNG
Annonceindlæg fra Computerworld
AI-agenterne kommer vrimlende
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
04. september 2011 - 21:20
#1
da det kun er den del af det der står i cellen, skal du have start og længde med. L = Len(forkortelse) ActiveCell.Characters(Start:=5, Length:=2).Font.FontStyle = "Kursiv" noget i denne stil Sub autoKursiv() Dim forkortelse As String Dim examinedRow As Integer Dim L As Integer, R As Integer, C As Range examinedRow = 0 Worksheets("input").Select Range("A1").Select Do examinedRow = examinedRow + 1 forkortelse = ActiveCell.Offset(1, 0).Value L = Len(forkortelse) Worksheets("output").Select ActiveSheet.UsedRange.Select R = InStr(1, ActiveCell, forkortelse) For Each C In Selection If R > 0 Then C.Characters(Start:=R, Length:=L).Font.FontStyle = "Kursiv" End If Next C Worksheets("status").Select Range("A1").Offset(examinedRow, 0).Select Loop Until IsEmpty(ActiveCell.Offset(1, 0)) End Sub
01. januar 2012 - 10:54
#3
Hej Kabbak, Beklager at jeg ikke så dit svar. Jeg fik nogenlunde samme råd udenfor eksperten.dk, men dit svar kvalificerer sig naturligvis til point. Jeg fik løst mit problem :-) Mvh NPNG