Endre fonter i flere arbeidsbøker

January 19  by Eliza

Hamish står overfor en vanskelig oppgave: Han trenger å endre standard skriftene som brukes i et stort antall av Excel-arbeidsbøker. Han har over 100 arbeidsbøker, og skriftene som brukes i disse arbeidsbøkene må endres til en ny font spesifisert av bedriftens mandat. (Du vet hvordan bedriftens mandater kan være!)

Den manuelle måten å nærme seg denne oppgaven er å laste hver arbeidsbok, gå gjennom hvert regneark, velger du cellene, og endre skriftene i disse cellene. Å gjøre Hamish oppgave enda mer komplisert, må han endre flere skrifttyper i hver arbeidsbok. Med andre ord, gitt skrifttyper A, B, C og D, må Hamish å endre skrift A til C og skrift B til D.

Den beste måten å nærme seg dette problem på er gjennom bruk av en makro. Det er så mye lasting, søking, og endre det er nødvendig at det bare er fornuftig å henvise arbeidet til en makro. Følgende makro bør gjøre jobben:

Sub ChangeFontNames ()
Dim vNamesFind
Dim vNamesReplace
Dim sFileName As String
Dim WKB Som arbeidsbok
Dim Wks Som regneark
Dim Rceii Som Range
Dim x As Integer
Dim iFonts As Integer
Dim Späth As String

'Endre disse linjene som passer
'Dette er fontnames å finne
vNamesFind = Array ("Arial", "Allegro BT")
'Dette er fontnames å erstatte
vNamesReplace = Array ("Wingdings", "Times New Roman")
"Dette er mappen for å se etter xls filer
Späth = "C: \ mappe \"

Application.ScreenUpdating = False
iFonts = UBound (vNamesFind)
Hvis iFonts <> UBound (vNamesReplace) Deretter
MsgBox "Søk og erstatt Arrays må være av samme størrelse"
Exit Sub
End If
sFileName = Dir (Späth & "* .xls")
Gjør Mens sFileName <> ""
Satt WKB = Workbooks.Open (Späth & sFileName)
For hver Wks I Wkb.Worksheets
For Hver Rceii I Wks.UsedRange
For x = 0 For å iFonts
Med rCell.Font
Hvis .name = vNamesFind (x) Deretter _
.name = VNamesReplace (x)
Avslutt med
Neste
Neste
Neste
Wkb.Close (sann)
sFileName = Dir
Loop
Application.ScreenUpdating = True
Satt Rceii = Nothing
Satt Wks = Nothing
Satt WKB = Nothing
End Sub

Å bruke makroen med dine egne arbeidsbøker, er det et par ting du må gjøre. Først, sørg for at alle arbeidsbøker du ønsker å endre lagres i én mappe, og at du vet navnet på mappen. Deretter, i løpet av makroen, endre variablene er definert i begynnelsen av makroen. Endre elementer av vNamesFind og vNamesReplace arrays for å matche navnene på de skriftene du vil henholdsvis finne og erstatte. Deretter bør du endre den Späth variabel slik den inneholder den fullstendige banen til mappen som inneholder arbeidsbøker. (Ikke glem en skråstrek på banen.)

Når du kjører makroen, laster den hver arbeidsbok i mappen, etter tur. Deretter går det gjennom hvert regneark i hver arbeidsbok, og undersøker hver eneste celle. Hvis cellen har en av de skriftene som finnes, så det er erstattet med den respektive erstatningsfont. Når makroen er ferdig med arbeidsboken, lagres det og neste arbeidsbok er behandlet.

De som er interessert i å unngå denne typen problemer på nye regneark skal utforske hvordan du bruker stiler i Excel. Du kan definere en rekke stiler og bruke dem gjennom en arbeidsbok. Hvis du senere må endre formateringen for spesifikke celler, er alt du trenger å gjøre endre de underliggende stiler. (Styles har blitt dekket i andre saker av ExcelTips.)

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (2526) gjelder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Excel (Excel 2007 og senere) her: Endre fonter i flere arbeidsbøker.