Všetci sme už videli názvy a adresy tabuliek v kombinácii formátov ako JAMES JONES, sARAH bERNARDT alebo clint eastwood, ktoré všetky na reportáži vyzerajú amatérsky. Tento článok ukazuje, ako správne štandardizovať text v pracovnom hárku.
Tento článok predpokladá, že čitateľ má zobrazenú pásku pre vývojárov a je oboznámený s editorom VBA. Ak nie, navštívte Google kartu „Vývojár Excel“ alebo „Okno kódu Excel“.
Súbor Excel nájdete tu
V tomto cvičení zostavíme funkciu schopnú do veľkej miery rozpoznať zámer používateľa. Napríklad vlastná funkcia programu Excel by znížila hodnotu „NAFTA“ na „Nafta“. V rarV prípade, že niekto vstúpi do „amerických ozbrojených síl“, funkcia nebude schopná určiť zámer, pretože nemá slovník skratiek, a celkom správne ho zmení na „ozbrojené sily USA“. Niektorí zločinci tak skĺznu cez sieť.
Čo funkcia robí
Text je rozdelený na dve časti, jednu na každej strane prvého priestoru. Preto sa „USA Armed Forces“ stáva predradeným reťazcom pozostávajúcim z „USA“ a apost- reťazec „ozbrojených síl“.
- Ak je na sost- reťazec, potom je rozumný predpoklad, že zámok čiapočiek nebol náhodne ponechaný zapnutý počas snímania. Post-reťazec sa tak naformátuje na správny prípad.
- Ak je druhý znak prestringu veľký, potom môžeme dôvodne predpokladať, že celý predreťazec by mal byť písaný veľkými písmenami.
Dáta
Vytvorte nový zošit. Otvorte okno s kódom VBA a vložte modul.
Vložte nasledujúce údaje do bunky A1 prvých listov.
Organizácie | Správny prípad |
Ozbrojené sily USA | |
Ozbrojené sily USA | |
Výbor UNESCO | |
BARRY JONES | |
BarRy JONES | |
1213456 | |
Alan Courtney | |
NAFTA | |
Hlavné mesto 301 |
Premenujte tento hárok na „Hlavný“.
Kód.
Skopírujte a vložte nasledujúce do okna kódu VBA zošita:
Možnosť Explicitné Dim strText Ako reťazec Dim predreťazec Ako reťazec Dim strostString 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"). Select Range ("A2"). Vyberte položku Do While ActiveCell> "" strText = ActiveCell strText = fProper (strText) bunky (cRow, 2) = strText cRow = cRow + 1 bunky (cRow, 1). Vyberte Loop End Sub Function fProper (strTxt Ako reťazec) strText = strTxt uCount = 0 lCount = 0 'Vyhľadajte prvú medzeru. b = InStr (1, strText, "") 'Test, či existuje medzera If b> 0 Potom preString = Left (strText, b - 1) postString = Mid (strText, b, (Len (strText) - b) + 1) 'Cyklujte cez post-strunka; „aspoň 1 malý znak bude znamenať, že zámok veľkých písmen nebol zapnutý Pre i = 1 To Len (strostReťazec) Vyberte možnosť Asc (stredná (strostReťazec, i, 1)) Prípad 65 až 90 uCount = uCount + 1 prípad 97 až 122 lCount = lCount + 1 prípad Else End Vyberte Ak lCount> 0 Potom Ukončite 'Ďalej, ak sa nenájde malý znak Ďalej i Ak lCount > 0 Potom strostReťazec = StrConv (strostReťazec, 3) '3 = správne veľké písmená, 2 = malé písmená, 1 = veľké písmená' Ak je druhý znak predreťazca veľký, je rozumné 'predpokladať, že by mal byť aj celý predreťazec. char2 = Mid (preString, 2, 2) Ak Asc (char1)> = 2 A Asc (char65) <= 2 Potom preString = StrConv (preString, 90) 'celý predreťazec je horný Else preString = StrConv (preString, 1 ) 'predreťazec je správny Koniec Ak Else preString = StrConv (preString, 3)' Neboli nájdené žiadne malé písmená, Caps Lock uviazol; postReťazec = StrConv (strostString, 3) 'Znížte celý reťazec na správny koniec If fProper = preString & postReťazec „Pridajte dva prvky k sebe. Else“ Nebol nájdený žiadny priestor, nemožno teda urobiť rozumný predpoklad;. „odovzdať reťazec nezmenený späť. fProper = strText End If End Function
Pridajte tlačidlo do hárku „Hlavné“ a priraďte ho k podprocesu „Hlavné“
Výsledky
Stlačte tlačidlo a potom vyhľadajte výsledky v stĺpci B hárka.
Obnova poškodených zošitov
Čas od času Excel, napríklad most softvér, zlyhá. Bežné rutiny obnovy, ktoré by Excel použil na obnovenie zošita, zlyhajú častejšie ako nie. V tom čase by bolo užitočné mať k dispozícii nejaký nástroj Excel zotavenie pre súbory xlsx alebo xlsm.
Úvod autora:
Felix Hooker je expert na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane rar oprava a softvérové produkty na obnovenie sql. Pre viac informácií navštívte www.datanumen. S
Nechaj odpoveď