Si të kaloni nëpër fletën tuaj të punës në Excel me VBA

Ndonjëherë është e dobishme të lexoni një fletë pune rresht pas rreshti dhe të merrni në mënyrë selektive të dhëna prej saj. Një shembull më poshtë tregon se si ta bëni këtë.

Artikulli supozon se lexuesi ka të shfaqur shiritin e Zhvilluesit dhe është i njohur me Redaktorin VBA. Nëse jo, ju lutemi Google "Excel Developer Tab" ose "Excel Code Window".

Shembulli i mëposhtëm manipulon të dhënat duke ekzaminuar çdo rresht të adresave të postës elektronike dhe duke i bashkuar ato në një rresht të vetëm adresash. Ndërsa Excel ka funksione të integruara Transpose, ne synojmë që me kodin tonë të përjashtojmë disa adresues specifikë dhe të shtojmë kufizues.

Aplikacioni ynë ka nevojë për vetëm një fletë. Kopjoni informacionin e mëposhtëm në qelizën A1:

Adresa e postës elektronike (e-mail)
tcruise@paramount.com
julia.R@disney.com
Jules.dassin@gaumont.co.fr
EnricoFellini@cinecitta.co.it
marymontrary@bedlam.org.uk

Vendosni një buton në formular për të nisur kodin.Vendosni një buton në formular për të nisur kodin

Le të supozojmë se ka qindra email-e të tilla në vend të vetëm pesë; duam t'i dërgojmë secilit të njëjtin mesazh dhe të njëjtën kopje të skenarit tonë. Ka disa mënyra për ta bërë këtë, më së shumti duke thirrur dërguesin e email-eve, si Outlook, nga kodi VBA. Megjithatë, ky ushtrim shërben për dy qëllime:

  • Tregoni se si të kaloni me biçikletë me lehtësi nëpër një fletë pune;
  • Theksoni aftësinë e Excel-it për të ekzaminuar çdo rresht dhe veproni sipas tij.

Kodi VBA

Kodi VBA do të bashkojë të gjitha adresat, duke futur një pikëpresje pas secilës, në mënyrë që ato të mund të ngjiten me një hap në fushën e adresuesit të emailit. Nga kodi do të vini re se, pas ekzaminimit të rreshtave, ai do të përjashtojë ato franceze.

Fusni një modul dhe shkruani sa vijon:

Option Explicit
Dim strEmail As String
Dim strAll As String

Sub Main()
    strAll = ""
    Range("C2") = strAll     'clear previous program results
    Sheets("Sheet1").Select
    Range("A2").Select
    Do While ActiveCell > ""      'loop until row 7
        strEmail = ActiveCell
        If Right(strEmail, 2) <> "fr" Then      'exclude France
            strAll = strAll & strEmail & ";"
        End If
        Range("A" & ActiveCell.Row + 1).Select     'move on a row in the SAME column
    Loop
    Range("C2") = strAll
End Sub

Kodi e mban qelizën aktive në kolonën A, vetëm rreshtat vazhdojnë. Për të referuar informacionin diku tjetër me radhë, ne do të përdornim:

Variable = Activecell.offset(offset rows, offset columns)

Për të marrë një vlerë nga kolona B në rreshtin aktiv, për shembull, kodi do të lexonte Activecell.offset(0, 1). Për të marrë vlerën e A2 kur jemi në A3 do të lexonim Activecell.offset(-1, 0).

Për të testuar kodin tuaj, caktoni butonin në makro "Main".

Disa ofrues të shërbimeve të internetit, si një masë paraprake kundër spamit, mund të kufizojnë numrin e emaileve që mund të dërgoni menjëherë. Nëse përdorni këtë metodë, ndoshta është më mirë të kontrolloni me ta përpara se të dërgoni qindra emaile në të njëjtën kohë.

Trajtimi i korrupsionit të skedarëve Excel

Korrupsioni i skedarit ExcelHerë pas here hasim dëmtime të librave të punës deri në atë pikë sa vetë Excel nuk mund t'i rikuperojë ato. Kjo është një katastrofë për shumicën e përdoruesve të Excel, përfshirë ekspertët. Megjithatë, nëse keni një mjet efektiv rikuperimi në dispozicion, mund ta rikuperoni. skedarë xlsx të dëmtuar lehtë dhe shpejt.

Hyrje e autorit:

Felix Hooker është një ekspert i rikuperimit të të dhënave në DataNumen, Inc., e cila është lider botëror në teknologjitë e rikuperimit të të dhënave, duke përfshirë riparim rar korrupsioni dhe produkte softuerike për rikuperimin sql. Për më shumë informacion vizitoni www.datanumen.com

Komentet janë të mbyllura.