Utilizați Macros în Excel pe Mac pentru a economisi timp și a face mai multe

Utilizați Macros în Excel pe Mac pentru a economisi timp și a face mai multe

Excel pe Mac nu a fost întotdeauna aceeași putere ca și pe Windows. Macro-urile nu ar funcționa decât dacă ar fi create exclusiv pentru Mac.





Începând din 2013, Microsoft a readus macrocomenzile. Există două tipuri de macro-uri: cele pe care le puteți crea înregistrând rapid acțiunile dvs. și cele care utilizează VBA pentru a proiecta automatizări mai avansate. Cu Office 2016, Excel folosește aceeași bază de cod pe toate platformele . Această modificare va facilita funcționarea macro-urilor pe platforme.





Deci, să aruncăm o privire la modul în care funcționează în prezent pe macOS.





este posibil ca acest accesoriu să nu fie acceptat iphone

Activarea macro-urilor în Excel pe Mac

Lucrul cu macrocomenzi în Excel pe Mac poate să nu fie activat în mod implicit. Această setare se datorează faptului că macro-urile pot fi un posibil vector malware. Cel mai simplu mod de a spune este să vedeți dacă aveți Dezvoltator filă disponibilă pe panglică în Excel. Dacă nu o vedeți, este ușor de activat.

Click pe excela în bara de meniu, apoi selectați Preferințe în meniul derulant. În meniu, faceți clic pe Panglică și bara de instrumente . În lista din dreapta, Dezvoltator ar trebui să fie în partea de jos, faceți clic pe caseta de selectare. În cele din urmă, faceți clic pe Salvați și ar trebui să vedeți fila Developer afișată la sfârșitul panglicii.



După ce creați fiecare registru de lucru cu macrocomenzi, salvați-l într-un format nou .xlsm pentru a utiliza macrocomenzile după redeschiderea fișierului. Dacă uitați, Excel vă va reaminti de fiecare dată când încercați să salvați. De asemenea, va trebui să activați macro-urile de fiecare dată când deschideți fișierul.

Înregistrarea manuală a unei macrocomenzi în Excel pe Mac

Deși puteți codifica macro-uri , s-ar putea să nu fie pentru toată lumea. Dacă nu sunteți gata să începeți să lucrați cu VBA, Excel vă permite să înregistrați pașii pentru macro într-o foaie existentă. Faceți clic pe fila Dezvoltator pentru a vedea opțiunile.





Căutați a treia opțiune în panglică, Înregistrați macro . Faceți clic pe acesta și apare o fereastră de dialog care vă permite să denumiți macrocomenzile și să setați o comandă rapidă de la tastatură. Puteți extinde macro-ul la Cartea de lucru actuală , la Nou registru de lucru , sau în Carnet de lucru personal Macro . Carnetul de lucru pentru macrocomenzi personale se află în profilul dvs. de utilizator și vă permite să utilizați macrocomenzile între fișiere.

Odată ce vă înregistrați acțiunile, acestea sunt disponibile în aceeași filă. Dacă faceți clic pe macrocomenzi, vor fi afișate macrocomenzile salvate în registrul de lucru. Faceți clic pe numele macro și faceți clic pe Alerga pentru a rula acțiunile înregistrate.





Exemplul 1: vânzările zilnice totale și media orară

Pentru un exemplu de macro, veți trece printr-o foaie de vânzări zilnică, cu vânzările defalcate pe totaluri orare. Macrocomanda dvs. va adăuga un total de vânzări zilnic, apoi va adăuga o medie în ultima coloană a fiecărei perioade orare. Dacă lucrați în vânzarea cu amănuntul sau în altă poziție de vânzări, aceasta este o foaie utilă pentru a urmări veniturile.

Trebuie să configurăm prima foaie. Utilizarea acestui prim spațiu liber ca șablon pentru a copia într-o filă nouă în fiecare zi vă poate economisi ceva timp. În prima coloană / rând puneți Ora / Data. În partea de sus, adăugați de luni până vineri.

Apoi, în prima coloană puneți o defalcare a totalelor orare de la 8-5. Am folosit timp de 24 de ore, dar puteți utiliza notația AM / PM dacă preferați. Foaia dvs. trebuie să se potrivească cu captura de ecran de mai sus.

Adăugați o filă nouă și copiați șablonul în ea. Completați apoi datele de vânzări pentru ziua respectivă. (Dacă nu aveți date pentru a completa această foaie, poti intra = RandBetween (10.1000) în toate celulele pentru a crea date fictive.) Apoi, faceți clic pe Dezvoltator în Panglică.

Apoi, faceți clic pe Înregistrați macro . În caseta de dialog introduceți numele ca Medie și sumă și lăsați-l păstrat în Acest registru de lucru . Puteți seta o tastă de comandă rapidă, dacă doriți. Puteți introduce o descriere dacă aveți nevoie de mai multe detalii despre ceea ce face macro-ul. Faceți clic pe OK pentru a începe configurarea macro-ului.

În partea de jos a listelor orare, introduceți Totaluri zilnice . În celula de lângă el, introduceți = SUMĂ (B2: B10) . Apoi copiați și lipiți acest lucru în restul coloanelor. Apoi în antet adăugați In medie după ultima coloană. Apoi, în următoarea celulă, introduceți = Medie (B2: F2) . Apoi, lipiți-l în celulele din restul coloanei.

Apoi apasa Opriți înregistrarea . Macro-ul dvs. poate fi utilizat acum pe fiecare foaie nouă pe care o adăugați în registrul de lucru. După ce aveți o altă foaie de date, reveniți la Dezvoltator și faceți clic pe Macrocomenzi . Macro-ul dvs. trebuie evidențiat, faceți clic pe Executare pentru a adăuga sumele și mediile dvs.

Acest exemplu vă poate salva câțiva pași, dar pentru acțiuni mai complexe care se pot adăuga. Dacă faceți aceleași operațiuni pe date cu formatare identică, utilizați macrocomenzi înregistrate.

Macro VBA în Excel pe Mac

Macrocomenzile înregistrate manual în Excel vă ajută cu date care sunt întotdeauna în aceeași dimensiune și formă. De asemenea, este util dacă doriți să efectuați acțiuni pe întreaga foaie. Puteți utiliza macro-ul pentru a dovedi problema.

Adăugați încă o oră și o zi pe foaie și rulați macro-ul. Veți vedea că macrocomanda va suprascrie noile date. Modul în care rezolvăm acest lucru este utilizarea codului pentru a face macro-ul mai dinamic folosind VBA, care este un versiunea redusă a Visual Basic . Implementarea se concentrează pe automatizarea pentru Office.

Nu este așa ușor de preluat ca Applescript , dar automatizarea Office este în întregime construită în jurul Visual Basic. Deci, odată ce lucrați cu el aici, veți putea să vă întoarceți rapid și să-l utilizați în alte aplicații Office. (Poate fi, de asemenea, de mare ajutor dacă sunteți blocat cu un PC Windows la locul de muncă.)

Când lucrați cu VBA în Excel, aveți o fereastră separată. Captura de ecran de mai sus este macro-ul nostru înregistrat așa cum apare în editorul de cod. Modul cu ferestre poate fi util pentru a vă juca cu codul dvs. pe măsură ce învățați. Când macro-ul dvs. este închis, există instrumente de depanare pentru a analiza starea variabilelor și a datelor din foaie.

Office 2016 vine acum cu editorul Visual Basic complet. Vă permite să utilizați browserul de obiecte și instrumentele de depanare care erau limitate la versiunea Windows. Puteți accesa browserul de obiecte accesând Vizualizare> Browser de obiecte sau pur și simplu apăsați Shift + Comandă + B . Apoi puteți naviga prin toate clasele, metodele și proprietățile disponibile. A fost foarte util în construirea codului în secțiunea următoare.

Exemplul 2: Vânzări zilnice totale și medii orare cu cod

Înainte de a începe să vă codificați macrocomanda, să începem prin adăugarea unui buton la șablon. Acest pas facilitează accesul macro-ului dvs. pentru un utilizator începător. Ei pot face clic pe un buton pentru a apela macro-ul, mai degrabă decât să intre în file și meniuri.

Reveniți la foaia șablon goală pe care ați creat-o în ultimul pas. Click pe Dezvoltator pentru a reveni la filă. După ce vă aflați în filă, faceți clic pe Buton . Apoi, faceți clic undeva în foaia de pe șablon pentru a plasa butonul. Apare meniul macrocomenzi, denumiți macrocomenzile și faceți clic Nou .

Se va deschide fereastra Visual Basic; îl veți vedea listat ca Modulul 2 în browserul proiectului. Panoul de cod va avea Sub medie și sumă buton () în vârf și câteva linii în jos Sfârșitul Sub . Codul dvs. trebuie să treacă între aceste două, deoarece este începutul și sfârșitul macro-ului dvs.

Pasul 1: declararea variabilelor

Pentru început, va trebui să declarați toate variabilele. Acestea sunt în blocul de cod de mai jos, dar o notă despre modul în care sunt construite. Ar trebui să declarați toate variabilele folosind Nici unul înainte de nume și apoi la fel de cu tipul de date.

Sub AverageandSumButton()
Dim RowPlaceHolder As Integer
Dim ColumnPlaceHolder As Integer
Dim StringHolder As String
Dim AllCells As Range
Dim TargetCells As Range
Dim AverageTarget As Range
Dim SumTarget As Range

Acum, că aveți toate variabilele, trebuie să utilizați imediat unele dintre variabilele de interval. Gamele sunt obiecte care conțin secțiuni ale foii de lucru ca adrese. Variabila Toate celulele va fi setat la toate celulele active de pe foaie, care include etichetele coloanei și rândurilor. Obțineți acest lucru sunând la Foaie activă obiect și apoi este UsedRange proprietate.

Problema este că nu doriți ca etichetele să fie incluse în media și suma datelor. În schimb, veți utiliza un subset al gamei AllCells. Aceasta va fi gama TargetCells. Declarați manual intervalul său. Adresa sa de început va fi celula din al doilea rând din a doua coloană a intervalului.

Numiți acest lucru apelând telefonul dvs. AllCells gama, folosind Celulele pentru a obține acea celulă folosind (2.2) . Pentru a obține celula finală din interval, veți suna în continuare AllCells . De data aceasta folosind SpecialCells metoda de a obține proprietatea xlCellTypeLastCell . Puteți vedea ambele în blocul de cod de mai jos.

Set AllCells = ActiveSheet.UsedRange
Set TargetCells = Range(AllCells.Cells(2, 2), AllCells.SpecialCells(xlCellTypeLastCell))

Pasul 2: pentru fiecare buclă

Următoarele două secțiuni de cod sunt pentru fiecare buclă. Aceste bucle parcurg un obiect pentru a acționa asupra fiecărui subset al acelui obiect. În acest caz, faceți două dintre ele, unul pentru fiecare rând și unul pentru fiecare coloană. Deoarece sunt aproape exact la fel, doar unul dintre ei este aici; dar ambele sunt în blocul de cod. Detaliile sunt practic identice.

Înainte de a începe bucla pentru fiecare rând, trebuie să setați coloana țintă unde bucla scrie media fiecărui rând. Folosești ColumnPlaceHolder variabilă pentru a seta această țintă. Îl setați egal cu Numara variabilă a Celulele clasa de AllCells . Adăugați unul la acesta pentru a-l muta în dreapta datelor dvs. prin anexare +1 .

Apoi, veți începe bucla utilizând Pentru fiecare . Apoi doriți să creați o variabilă pentru subset, în acest caz, subRând . După În , setăm obiectul principal pe care îl analizăm TargetCells . Adăuga .Rânduri la final pentru a limita bucla doar la fiecare rând, în loc de fiecare celulă din interval.

În interiorul buclei, utilizați metoda ActiveSheet.Cells pentru a seta o anumită țintă pe foaie. Coordonatele sunt setate folosind subRow.Row pentru a obține rândul în care se află bucla. Apoi, utilizați ColumnPlaceHolder pentru cealaltă coordonată.

Utilizați acest lucru pentru toți cei trei pași. Primul pe care îl adăugați .valoare după paranteze și set egal cu WorksheetFunction.Average (subRow) . Aceasta scrie formula pentru media rândului în celula țintă. Următorul rând pe care îl adăugați .Stil și stabiliți că egal cu 'Valută' . Acest pas se potrivește cu restul foii. Pe ultima linie, adăugați .Font.Bold și setați-l egal la Adevărat . (Rețineți că nu există ghilimele în jurul acesteia, deoarece este valoarea booleană.) Această linie redă fontul pentru a face ca informațiile rezumative să iasă în evidență de restul foii.

Ambii pași sunt în exemplul de cod de mai jos. A doua buclă schimbă rândurile pentru coloane și schimbă formula în Sumă . Utilizarea acestei metode leagă calculele dvs. de formatul foii curente. În caz contrar, este legat de dimensiunea în momentul în care înregistrați macrocomanda. Deci, atunci când lucrați mai multe zile sau ore, funcția crește odată cu datele dvs.

cum se conectează airpod-urile la Xbox
ColumnPlaceHolder = AllCells.Columns.Count + 1
For Each subRow In TargetCells.Rows
ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Value = WorksheetFunction.Average(subRow)
ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Style = 'Currency'
ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Font.Bold = True
Next subRow
RowPlaceHolder = AllCells.Rows.Count + 1
For Each subColumn In TargetCells.Columns
ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Value = WorksheetFunction.Sum(subColumn)
ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Style = 'Currency'
ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Font.Bold = 'True'
Next subColumn

Pasul 3: Etichetați rezumatele

Apoi, etichetați noul rând și coloana, setați RowPlaceHolder și ColumnPlaceHolder din nou. În primul rând, utilizați AllCells.Row pentru a obține primul rând din gamă și apoi AllCells.Column + 1 pentru a obține ultima coloană. Apoi veți folosi aceeași metodă ca bucla pentru a seta valoarea la „Vânzări medii” . De asemenea, veți folosi același lucru .Font.Bold proprietate pentru a îndrăzni noua etichetă.

Apoi inversați-l, setând substituenții la prima coloană și ultimul rând de adăugat 'Vanzari totale' . Vrei să îndrăznești și asta.

Ambii pași se află în blocul de cod de mai jos. Acesta este sfârșitul macro-ului notat de Sfârșitul Sub . Acum ar trebui să aveți întreaga macro și să puteți face clic pe buton pentru ao rula. Puteți lipi toate aceste blocuri de cod în ordine în foaia dvs. Excel dacă doriți să trișați, dar unde este distracția?

ColumnPlaceHolder = AllCells.Columns.Count + 1
RowPlaceHolder = AllCells.Row
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Value = 'Average Sales'
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Font.Bold = True
ColumnPlaceHolder = AllCells.Column
RowPlaceHolder = AllCells.Rows.Count + 1
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Value = 'Total Sales'
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Font.Bold = True
End Sub

Ce urmează pentru Macros în Excel pe Mac?

Macrocomenzile înregistrate sunt grozave de utilizat pentru repetarea previzibilă. Chiar dacă este ceva la fel de simplu ca redimensionarea tuturor celulelor și a anteturilor îndrăznețe, acestea vă pot economisi timp. Doar evitați greșelile macro obișnuite .

Visual Basic deschide ușa utilizatorilor Mac Excel pentru a se adânci în automatizarea Office. Visual Basic era în mod tradițional disponibil numai pe Windows. Permite macro-urilor să se adapteze la date în mod dinamic, făcându-le mai versatile. Dacă aveți răbdare, aceasta poate fi ușa către o programare mai avansată.

Doriți mai multe trucuri pentru a economisi timp? Aflați cum să evidențiați date specifice automat cu formatarea condiționată în Excel și evidențierea condiționată în Numbers pe Mac.

Acțiune Acțiune Tweet E-mail 3 moduri de a verifica dacă un e-mail este real sau fals

Dacă ați primit un e-mail care arată puțin dubios, cel mai bine este întotdeauna să verificați autenticitatea acestuia. Iată trei moduri de a afla dacă un e-mail este real.

Citiți în continuare
Subiecte asemănătoare
  • Mac
  • Productivitate
  • Programare
  • Programare Visual Basic
  • Microsoft Excel
Despre autor Michael McConnell(44 articole publicate)

Michael nu a folosit un Mac când erau condamnați, dar poate codifica în Applescript. Este licențiat în informatică și engleză; scrie de ceva timp despre Mac, iOS și jocuri video; și este o maimuță IT de zi de peste un deceniu, specializată în scripturi și virtualizare.

Mai multe de la Michael McConnell

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona
Categorie Mac