Byt ut tecken i Excel med makro
Det går att använda Excels inbyggda verktyg för att söka och ersätta tecken. Men om det är många olika tecken som ska ersättas blir det ett extra arbete. I detta exempel ska jag visa hur vi kan lösa detta med ett makro. Makrot är gjort så att vi behöver en uppslagstabell för alla tecken som ska byta ut. Tänk på att en Excelfil med makro måste sparas som en makroaktiverad Excelfil för att kunna använda makrot i filen.
Hämta den färdig exempelfilen här.
Byt ut tecken med makro
I det första exemplet har vi en namnlista där namnet innehåller å, ä ö med stora och små bokstäver. Vi behöver ersätta dessa bokstäver med a, a, o (stora och små). Det ger oss 6 olika kombinationer att söka och ersätta.
Vi rekommenderar dessa Excelkurser:
www.infocell.se – lärarledda kvalitetskurser i Excel
www.officekurs.se – oslagbar e-kurser i Excel & Office-paketet
Förutsättningarna för detta makro är att vi också har en uppslagstabell färdig på kalkylbladet.
Första kolumnen med bokstäver som finns och nästa kolumn vilka bokstäver de ska ersättas med. Observera att vi gör skillnad på stora och små bokstäver.
Skapa makro
För att komma åt VBA-fönstret, se till att aktivera menyfliken Utvecklare [Developer].
- Klicka på Arkiv [File], Sedan välj Alternativ [Options]. I dialogrutan klicka sedan på valet Anpassa menyfliksområdet [Customize Ribbon], bocka i valet Utvecklare [Developer]. Klicka OK.
När menyfliken Utvecklare är tillgänglig så klickar du sedan på knappen Visual Basic för att komma till VBA-fönstret.
I VBA-fönstret, klicka på Infoga [Insert] och sedan Modul [Module]. Ett tomt fönster öppnas, klistra in koden nedan i fönstret och stäng hela VBA-fönstret för att återgå till kalkylbladet.
Sub Replace() Dim Rng As Range, SourceRng As Range, ReplaceRng As Range On Error Resume Next Set SourceRng = Application.InputBox("Källdata:", "Bulk Replace", Application.Selection.Address, Type:=8) Err.Clear If Not SourceRng Is Nothing Then Set ReplaceRng = Application.InputBox("Ersättningstabell:", "Bulk Replace", Type:=8) Err.Clear If Not ReplaceRng Is Nothing Then Application.ScreenUpdating = False For Each Rng In ReplaceRng.Columns(1).Cells SourceRng.Replace what:=Rng.Value, replacement:=Rng.Offset(0, 1).Value, MatchCase:=True Next Application.ScreenUpdating = True End If End If End Sub
Spara din Excelfil som en makroaktiverad Excelfil (.xlsm). Nu är det klart att kunna använda makrot.
Kör makrot
I detta läge är inte makrot kopplat till ett kortkommando eller en knapp, vi får köra i gång det manuellt. På menyfliken Utvecklare [Developer] klicka på knappen Makron [Macros]. En dialogruta öppnas med vårt makro synligt. Markera makrot och klicka på Kör [Run].
- I första dialogrutan ska du ange hela området som ska ändras (Källdata). Klicka OK.
- I nästa dialogruta ska du markera uppslagstabellen (Ersättningstabell). Klicka OK.
- Ersättningarna utförs. Önskade tecken är nu ersatta.
Tänk på att när man kör ett makro i Excel så går det inte att ångra.
Byt ut tecken åt andra hållet
Om du får en text till Excel som innehåller massa konstiga tecken för exempelvis å, ä, ö så kan det vara problematiskt att på traditionellt sätt rätta till detta. Men med makrot vi skapat i detta tips blir det mycket enklare. Det vi på förhand måste göra är en egen uppslagstabell för att identifiera vilka tecken som ska ersättas. Nedan ser du ett exempel på en namnlista med konstiga tecken som vi ska rätta till.
Med lite detektivarbete så har jag skapat en uppslagstabell:
I uppslagstabellen ser vi även att é (e med akut accent) är med för att även få rätt på det tecknet.
Sedan är det bara att köra makrot.
- Markera hela området med felaktiga tecken. Klicka OK.
- Markera uppslagstabellen. Klicka OK.
- Nu har du rättat till alla tecken och namnen är läsbara.
Läs mer om våra självstudiekurser på www.officekurs.se.