Brug makroer i Excel på Mac til at spare tid og gøre mere

Brug makroer i Excel på Mac til at spare tid og gøre mere

Excel på Mac har ikke altid været det samme kraftcenter, som det var på Windows. Makroer ville virkelig ikke fungere, medmindre de udelukkende blev oprettet til Mac.





Fra og med 2013 bragte Microsoft makroer tilbage. Der er to typer makroer: dem, du kan oprette ved hurtigt at registrere dine handlinger, og dem, der bruger VBA til at designe mere avancerede automatiseringer. Med Office 2016 bruger Excel samme kodebase på alle platforme . Denne ændring vil gøre det lettere for makroer at arbejde på tværs af platforme.





Så lad os se på, hvordan dette i øjeblikket fungerer på macOS.





ipad pro 11 tommer vs 12.9

Aktivering af makroer i Excel på Mac

Arbejde med makroer i Excel på din Mac er muligvis ikke aktiveret som standard. Denne indstilling skyldes, at makroer kan være en mulig malware -vektor. Den letteste måde at fortælle på er at se, om du har Udvikler fanen tilgængelig på båndet i Excel. Hvis du ikke kan se det, er det enkelt at aktivere.

Klik på Excel i menulinjen, og vælg derefter Præferencer i rullemenuen. Klik på i menuen Bånd og værktøjslinje . I listen til højre, Udvikler skal være i bunden, skal du markere afkrydsningsfeltet. Klik til sidst Gemme og du skal se fanen Udvikler vises i slutningen af ​​båndet.



Når du har oprettet hver projektmappe med makroer, skal du gemme den i et nyt format .xlsm at bruge makroerne efter genåbning af filen. Hvis du glemmer det, minder Excel dig hver gang du prøver at gemme. Du skal også aktivere makroer, hver gang du åbner filen.

Manuel optagelse af en makro i Excel på Mac

Selvom du kan kode makroer , det er måske ikke for alle. Hvis du ikke er klar til at begynde at arbejde med VBA, kan Excel registrere trinene for din makro i et eksisterende ark. Klik på fanen Udvikler for at se dine muligheder.





Du leder efter den tredje mulighed i båndet, Optag makro . Klik på dette, og der vises en dialog, der giver dig mulighed for at navngive din makro og angive en tastaturgenvej. Du kan omfatte din makro til Nuværende arbejdsbog , til Ny arbejdsbog , eller i din Personlig makro -projektmappe . Personal Macro Workbook er i din brugerprofil og lader dig bruge dine makroer mellem dine filer.

Når du har registreret dine handlinger, er de tilgængelige på samme fane. Hvis du klikker på makroer, vises de gemte makroer i din projektmappe. Klik på dit makronavn og klik Løb for at køre dine registrerede handlinger.





Eksempel 1: Dagligt salg i alt og timegennemsnit

For et eksempel på en makro vil du gennemgå et dagligt salgsark, hvor salget er opdelt i timetotaler. Din makro tilføjer en daglig salgssum og derefter tilføjer et gennemsnit i den sidste kolonne i hver time -periode. Hvis du arbejder i detail- eller anden salgsstilling, er dette et nyttigt ark til at spore omsætning.

Vi skal opsætte det første ark. Brug af dette første emne som skabelon til at kopiere til en ny fane hver dag kan spare dig lidt tid. I den første kolonne/række sættes Time/Date. Over toppen tilføj mandag til fredag.

Derefter i den første kolonne en opdeling af timetotaler fra 8-5. Jeg brugte 24-timers tid, men du kan bruge AM/PM notation, hvis du foretrækker det. Dit ark skal matche skærmbilledet ovenfor.

Tilføj en ny fane, og kopier din skabelon til den. Udfyld derefter dine salgsdata for dagen. (Hvis du ikke har data til at udfylde dette ark, du kan komme ind = RandBetween (10.1000) i alle cellerne for at oprette dummy -data.) Klik derefter på Udvikler i båndet.

Klik derefter på Optag makro . Indtast navnet som i dialogboksen Gennemsnitlig og sum og lad det opbevares i Denne arbejdsbog . Du kan indstille en genvejstast, hvis du vil. Du kan indtaste en beskrivelse, hvis du har brug for flere detaljer om, hvad makroen gør. Klik på OK for at starte opsætningen af ​​makroen.

Nederst i timelisterne indtastes Daglige totaler . Indtast i cellen ved siden af = SUM (B2: B10) . Kopier og indsæt det derefter i resten af ​​kolonnerne. Tilføj derefter i overskriften Gennemsnit efter den sidste kolonne. Indtast derefter i den næste celle ned = Gennemsnit (B2: F2) . Indsæt det derefter i cellerne i resten af ​​kolonnen.

Klik derefter på Stop optagelse . Din makro kan nu bruges på hvert nyt ark, du tilføjer til din projektmappe. Når du har et andet datablad, skal du gå tilbage til Udvikler og klik på Makroer . Din makro skal fremhæves, klik på Kør for at tilføje dine summer og gennemsnit.

Dette eksempel kan spare dig et par trin, men for mere komplekse handlinger, der kan tilføje. Hvis du udfører de samme operationer på data med identisk formatering, skal du bruge optagede makroer.

VBA -makroer i Excel på Mac

Manuelt registrerede makroer i Excel hjælper med data, der altid er i samme størrelse og form. Det er også nyttigt, hvis du vil udføre handlinger på hele arket. Du kan bruge din makro til at bevise problemet.

Tilføj endnu en time og dag til arket, og kør makroen. Du vil se, at makroen overskriver dine nye data. Den måde, vi kommer uden om dette på, er ved at bruge kode til at gøre makroen mere dynamisk ved hjælp af VBA, hvilket er en slanket version af Visual Basic . Implementeringen fokuserer på automatisering til Office.

Det er ikke som let at hente som Applescript , men Office's automatisering er helt bygget op omkring Visual Basic. Så når du arbejder med det her, er du hurtigt i stand til at vende om og bruge det i andre Office -apps. (Det kan også være en stor hjælp, hvis du sidder fast med en Windows -pc på arbejde.)

Når du arbejder med VBA i Excel, har du et separat vindue. Skærmbilledet ovenfor er vores optagede makro, som den vises i kodeeditoren. Den vindue -tilstand kan være nyttig at lege med din kode, mens du lærer. Når din makro bliver hængt op, er der fejlfindingsværktøjer til at se på tilstanden for dine variabler og arkdata.

Office 2016 leveres nu med den komplette Visual Basic -editor. Det giver dig mulighed for at bruge objektbrowseren og fejlfindingsværktøjer, der før var begrænset til Windows -versionen. Du kan få adgang til objektbrowseren ved at gå til Vis> Objektbrowser eller bare tryk på Shift + Command + B . Du kan derefter gennemse alle de klasser, metoder og egenskaber, der er tilgængelige. Det var meget nyttigt at konstruere koden i det næste afsnit.

Eksempel 2: Dagligt salg i alt og timegennemsnit med kode

Inden du begynder at kode din makro, lad os starte med at tilføje en knap til skabelonen. Dette trin gør det meget lettere for en nybegynder at få adgang til din makro. De kan klikke på en knap for at kalde makroen frem for at grave i fanerne og menuerne.

Skift tilbage til det tomme skabelonark, du oprettede i det sidste trin. Klik på Udvikler for at komme tilbage til fanen. Når du er på fanen, skal du klikke på Knap . Klik derefter et sted i arket på skabelonen for at placere knappen. Makromenuen kommer op, navngiv din makro og klik Ny .

Visual Basic -vinduet åbnes; du vil se det opført som Modul 2 i projektbrowseren. Koderuden vil have Sub AverageandSumButton () øverst og et par linjer ned Afslut Sub . Din kode skal gå mellem disse to, da det er begyndelsen og slutningen på din makro.

Trin 1: Deklaration af variabler

For at begynde skal du deklarere alle dine variabler. Disse er i kodeblokken herunder, men en note om hvordan de er konstrueret. Du bør deklarere alle variabler ved hjælp af Ingen før navnet, og derefter som med datatypen.

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

Nu hvor du har alle dine variabler, skal du bruge nogle af rækkevariablerne med det samme. Områder er objekter, der indeholder sektioner af regnearket som adresser. Variablen Alle celler vil blive indstillet til alle de aktive celler på arket, som indeholder søjle- og rækkeetiketterne. Du får dette ved at ringe til ActiveSheet objekt og så er det UsedRange ejendom.

Problemet er, at du ikke vil have etiketterne inkluderet i gennemsnits- og sumdataene. I stedet vil du bruge en delmængde af AllCells -serien. Dette vil være TargetCells -området. Du angiver manuelt sit område. Dens startadresse vil være cellen i den anden række i den anden kolonne i intervallet.

Du kalder dette ved at ringe til din AllCeller rækkevidde, ved hjælp af dens Celler klasse for at få den specifikke celle ved hjælp af (2.2) . For at få den sidste celle i området, vil du stadig ringe AllCeller . Denne gang bruger Specialceller metode til at få ejendommen xlCellTypeLastCell . Du kan se begge disse i kodeblokken herunder.

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

Trin 2: For hver sløjfe

De næste to sektioner af kode er For hver sløjfer. Disse sløjfer går gennem et objekt for at virke på hver delsæt af det objekt. I dette tilfælde gør du to af dem, en for hver række og en for hver kolonne. Da de er næsten nøjagtig de samme, er kun en af ​​dem her; men begge er i kodeblokken. Detaljerne er stort set identiske.

Inden du starter løkken for hver række, skal du angive målkolonnen, hvor sløjfen skriver gennemsnittet for hver række. Du bruger KolonneStedHolder variabel for at angive dette mål. Du sætter det lig med Tælle variabel af Celler klasse af AllCeller . Tilføj en til den for at flytte den til højre for dine data ved at tilføje +1 .

Dernæst vil du starte løkken ved hjælp af For hver . Derefter vil du oprette en variabel for delsættet, i dette tilfælde, underrække . Efter I , sætter vi det hovedobjekt, vi analyserer TargetCells . Tilføj .Rækker i slutningen for at begrænse sløjfen til kun hver række, i stedet for hver celle i området.

Inde i sløjfen bruger du metoden ActiveSheet.Cells til at angive et specifikt mål på arket. Koordinaterne indstilles ved hjælp af underRække.Række for at få rækken, løkken er i øjeblikket i. Derefter bruger du KolonneStedHolder for den anden koordinat.

Du bruger dette til alle tre trin. Det første du tilføjer .værdi efter parenteserne og sæt lig med RegnearkFunktion.Gennemsnit (underrække) . Dette skriver formlen for gennemsnittet af rækken i din målcelle. Den næste linje, du tilføjer .Stil og sæt det lig med 'Betalingsmiddel' . Dette trin matcher resten af ​​dit ark. På den sidste linje tilføjer du .Font.Fedt og sæt det lig med Sand . (Bemærk, at der ikke er anførselstegn omkring dette, da det er den boolske værdi.) Denne linje markerer skrifttypen for at få resuméoplysningerne til at skille sig ud fra resten af ​​arket.

Begge trin er i kodeeksemplet herunder. Den anden sløjfe bytter rækker til kolonner og ændrer formlen til Sum . Ved hjælp af denne metode knytter dine beregninger sig til formatet på det aktuelle ark. Ellers er den knyttet til størrelsen på det tidspunkt, du optager makroen. Så når du arbejder flere dage eller timer, vokser funktionen med dine data.

min xbox one controller virker ikke
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

Trin 3: Mærk dine resuméer

Mærk derefter den nye række og kolonne, sæt RowPlaceHolder og KolonneStedHolder igen. Brug først AllCells.Række for at få den første række i området, og derefter AllCells.Column+1 for at få den sidste kolonne. Derefter vil du bruge den samme metode som sløjfen til at indstille værdien til 'Gennemsnitligt salg' . Du vil også bruge det samme .Font.Fedt ejendom for at markere din nye etiket.

Vend det derefter om og indstil dine pladsholdere til den første kolonne og sidste række, der skal tilføjes 'Samlet salg' . Du vil også gerne fed dette.

Begge trin er i kodeblokken herunder. Dette er slutningen på makroen noteret af Afslut Sub . Du skal nu have hele makroen og kunne klikke på knappen for at køre den. Du kan indsætte alle disse kodeblokke i rækkefølge i dit excelark, hvis du vil snyde, men hvor er det sjove i det?

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

Hvad er det næste for makroer i Excel på Mac?

Optagede makroer er gode at bruge til forudsigelig gentagelse. Selvom det er noget så simpelt som at ændre størrelsen på alle celler og fede overskrifter, kan disse spare dig tid. Lige undgå almindelige makrofejl .

Visual Basic åbner døren for Mac Excel -brugere til at grave dybt i Office -automatisering. Visual Basic var traditionelt kun tilgængelig på Windows. Det giver dine makroer mulighed for at tilpasse sig dataene dynamisk, hvilket gør dem mere alsidige. Hvis du har tålmodigheden, kan dette være døren til mere avanceret programmering.

Vil du have flere tidsbesparende regneark-tricks? Lær, hvordan du fremhæver specifikke data automatisk med betinget formatering i Excel og betinget fremhævelse i Numbers på Mac.

Del Del Tweet E -mail 3 måder at kontrollere, om en e -mail er ægte eller falsk

Hvis du har modtaget en e -mail, der ser lidt tvivlsom ud, er det altid bedst at kontrollere dens ægthed. Her er tre måder at se, om en e -mail er ægte.

Læs Næste
Relaterede emner
  • Mac
  • Produktivitet
  • Programmering
  • Visual Basic programmering
  • Microsoft Excel
Om forfatteren Michael McConnell(44 artikler udgivet)

Michael brugte ikke en Mac, da de var dødsdømt, men han kan kode i Applescript. Han har uddannelser i datalogi og engelsk; han har skrevet om Mac, iOS og videospil i et stykke tid nu; og han har været en it -abe i dagtimerne i over et årti med speciale i scripting og virtualisering.

Mere fra Michael McConnell

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere