Cum să standardizați textele din foaia de calcul cu Excel VBA

Cu toții am văzut nume și adrese de foi de calcul cu o combinație de formate precum JAMES JONES, sARAH BERNARDT sau Clint Eastwood, toate care arată amator într-un raport. Acest articol arată cum să standardizați textul în mod corespunzător într-o foaie de lucru.

Acest articol presupune că cititorul are afișată panglica pentru dezvoltatori și este familiarizat cu Editorul VBA. Dacă nu, vă rugăm să Google „Fila Dezvoltator Excel” sau „Fereastra Cod Excel”.

Fișierul Excel poate fi găsit aici

În acest exercițiu vom construi o funcție capabilă să recunoască, în mare măsură, intenția utilizatorului. De exemplu, funcția corectă Excel ar reduce „NAFTA” la „NAFTA”. În rarÎn cazul în care cineva intră în „forțele armate ale SUA”, funcția nu va putea determina intenția, deoarece nu are dicționar de acronime și o va schimba corect în „Forțele armate ale SUA”. Unii răufăcători se vor strecura astfel prin plasă.

Ce face funcția

Textul este împărțit în două părți, câte una pe fiecare parte a primului spațiu. Prin urmare, „Forțele Armate ale SUA” devine un pre-șir format din „USA” și apost- șir de „Forțe armate”.

  • Dacă există cel puțin un caracter mic în post-șir, atunci este o presupunere rezonabilă că blocarea majusculelor nu a fost lăsată accidental activată în timpul capturii. Post-string va fi astfel formatat la cazul potrivit.
  • Dacă al doilea caracter al preșirului este majuscule, atunci putem presupune în mod rezonabil că întregul preșir ar trebui să fie scris cu majuscule.

Datele

Creați un nou registru de lucru. Deschideți fereastra de cod VBA și introduceți un modul.

Lipiți următoarele date în prima celulă de foi A1.

Organizația Caz adecvat
Forțele Armate ale SUA
forțele armate ale SUA
comitetul UNESCO
BARRY JONES
BarRy JONES
1213456
alan courtney
NAFTA
301 Capital House

Redenumiți această foaie „Principal”.

Codul.

Copiați și inserați următoarele în fereastra de cod VBA a registrului de lucru:Cod VBA

Opțiune Explicit 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 Row As Integer 'Current row crow = 2 Sheets("Main").Select Range ("A2").Selectați Do While ActiveCell > "" strText = ActiveCell strText = fProper(strText) Cells(cRow, 2) = strText cRow = cRow + 1 Cells(cRow, 1).Selectați Loop End Sub Function fProper(strTxt As String) strText = strTxt uCount = 0 lCount = 0 'Căutați primul spațiu. b = InStr(1, strText, " ") 'Testează dacă ESTE un spațiu Dacă b > 0 Atunci preString = Left(strText, b - 1) postString = Mid(strText, b, (Len(strText) - b) + 1) 'Ciclul prin post-şir; „cel puțin 1 caracter mic va implica că blocarea majusculelor nu era activată Pentru i = 1 To Len(postString) Selectați Case Asc(Mid(postString, i, 1)) Case 65 până la 90 uCount = uCount + 1 Case 97 până la 122 lCount = lCount + 1 case Else End Selectați dacă lCount > 0 Then Exit pentru „Nu mergeți mai departe dacă se găsește un caracter mic Următorul i Dacă lCount > 0 Apoi postȘir = StrConv(postString, 3) '3=minuscule, 2=minuscule, 1=majuscule 'Dacă al 2-lea caracter al pre-șirului este majuscule, este rezonabil să presupunem că întregul pre-șir ar trebui să fie și el. char2 = Mid(preString, 2, 1) Dacă Asc(char2) >= 65 Și Asc(char2) <= 90 Atunci preString = StrConv(preString, 1) „întregul șir prealabil este superior Else preString = StrConv(preString, 3) ) 'pre-string este adecvat End If Else preString = StrConv(preString, 3) 'Nu s-a găsit nicio literă mică, Caps Lock blocat; postȘir = StrConv(postString, 3) 'Reduceți întregul șir la sfârșitul corespunzător If fProper = preString & postString „Adăugați cele două elemente împreună Altfel „Nu a fost găsit niciun spațiu, nu se poate face o presupunere rezonabilă cu privire la caz;. 'trece sfoara înapoi neschimbată. fProper = strText End If End Function

Adăugați un buton la Foaia „Principal” și atribuiți-l la subprocedura „Principal”Adăugați un buton la pagina principală

Rezultatele

Apăsați butonul, apoi examinați coloana B a foii pentru rezultate.

Recuperarea registrelor de lucru deteriorate

Din când în când Excel, ca most software-ul, se va prăbuși. Rutinele obișnuite de recuperare pe care Excel le-ar folosi pentru a recupera registrul de lucru vor eșua de cele mai multe ori. În astfel de momente ar fi util să aveți un instrument de făcut Recuperare Excel pentru fișierele xlsx sau xlsm.

Introducerea autorului:

Felix Hooker este un expert în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv rar repara și produse software de recuperare sql. Pentru mai multe informații vizitați www.datanumen.com

Lasă un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *