Vi har alle sett regnearknavn og adresser med en blanding av formater som JAMES JONES, sARAH BERNARDT eller clint eastwood, som alle ser amatøraktige ut på en rapport. Denne artikkelen viser hvordan du standardiserer tekst på riktig måte i et regneark.
Denne artikkelen forutsetter at leseren har utviklerbåndet vist og er kjent med VBA Editor. Hvis ikke, vennligst Google "Excel Developer Tab" eller "Excel Code Window".
Excel-filen kan bli funnet her.
I denne øvelsen skal vi bygge en funksjon som i stor grad er i stand til å gjenkjenne brukerens intensjoner. For eksempel vil Excel-funksjonen redusere 'NAFTA' til 'Nafta'. I rarI tilfelle der noen går inn i 'usa væpnede styrker', vil funksjonen ikke kunne bestemme hensikten, siden den ikke har noen ordbok med akronymer, og vil ganske riktig endre den til 'Usa Armed Forces'. Noen skurkere vil dermed slippe gjennom nettet.
Hva funksjonen gjør
Teksten er delt i to deler, en på hver side av det første rommet. Derfor blir 'USA Armed Forces' en pre-streng bestående av 'USA', og apost-streng av 'Væpnede styrker'.
- Hvis det er minst en liten bokstav i sost-streng, så er det en rimelig antagelse at caps lock ikke ved et uhell ble liggende på under fangst. Den post-streng vil dermed bli formatert til riktig store og små bokstaver.
- Hvis det andre tegnet i forstrengen er store bokstaver, kan vi med rimelighet anta at hele pre-strengen skal skrives med store bokstaver.
Dataen
Opprett en ny arbeidsbok. Åpne VBA-kodevinduet og sett inn en modul.
Lim inn følgende data i den første arkcelle A1.
Organisasjon | Riktig sak |
USAs væpnede styrker | |
USAs væpnede styrker | |
UNESCO-komiteen | |
BARRY JONES | |
Barry JONES | |
1213456 | |
alan courtney | |
NAFTA | |
301 hovedstadshus |
Gi dette arket nytt navn til "Main".
Koden.
Kopier og lim inn følgende i VBA-kodevinduet i arbeidsboken:
Alternativ Eksplisitt Dim strText As String Dim preString As String Dim postString As String Dim uCount As String Dim lCount As String Dim b As Integer Dim i As Integer Dim char2 As String Sub Main() Dim strText As String Dim crow As Integer 'Current row cRow = 2 Sheets("Main").Velg område ("A2"). Velg Gjør Mens ActiveCell > "" strText = ActiveCell strText = fProper(strText) Cells(cRow, 2) = strText cRow = Crow + 1 Cells(cRow, 1).Velg Loop End Sub Function fProper(strTxt) Som streng) strText = strTxt uCount = 0 lCount = 0 'Søk det første mellomrommet. b = InStr(1, strText, " ") 'Test om det ER et mellomrom Hvis b > 0 Da preString = Left(strText, b - 1) postString = Mid(strText, b, (Len(strText) - b) + 1) 'Sykle gjennom post-streng; 'minst 1 liten bokstav vil antyde at caps lock ikke var på For i = 1 To Len(postString) Velg Store og små bokstaver Asc(Mid(sostString, i, 1)) Sak 65 Til 90 uCount = uCount + 1 Sak 97 Til 122 lCount = lCount + 1 Case Else End Velg Hvis lCount > 0 Deretter Avslutt For 'Gå ikke lenger hvis en liten bokstav blir funnet Neste i Hvis lCount > 0 Deretter sostString = StrConv(sostString, 3) '3=små bokstaver, 2=små bokstaver, 1=store bokstaver 'Hvis det andre tegnet i pre-strengen er store bokstaver, er det rimelig å anta at hele pre-strengen også bør være det. char2 = Mid(preString, 2, 2) If Asc(char1) >= 2 And Asc(char65) <= 2 Then preString = StrConv(preString, 90) 'hele pre-strengen er øvre Else preString = StrConv(preString, 1 ) 'pre-string is proper End If Else preString = StrConv(preString, 3) 'Ingen små bokstaver funnet, Caps Lock sitter fast; sostString = StrConv(sostString, 3) 'Reduser hele strengen til riktig slutt hvis fProper = preString & postString 'Legg til de to elementene sammen. Ellers ble det ikke funnet noe mellomrom, en rimelig antagelse om sak kan ikke gjøres;. 'gi strengen tilbake uendret. fProper = strText End If End-funksjon
Legg til en knapp på arket "Main" og tilordne den til underprosedyren "Main"
Resultatene
Trykk på knappen, undersøk deretter kolonne B på arket for å se resultatene.
Gjenoppretting av skadede arbeidsbøker
Fra tid til annen Excel, som most programvare, vil krasje. De vanlige gjenopprettingsrutinene som Excel vil bruke for å gjenopprette arbeidsboken vil mislykkes oftere enn ikke. På slike tider vil det være nyttig å ha et verktøy å gjøre Excel-gjenoppretting for xlsx- eller xlsm-filer.
Forfatterintroduksjon:
Felix Hooker er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert rar reparasjon og sql-programvareprodukter. For mer informasjon besøk www.datanumen. Med
Legg igjen en kommentar