08/02/2026
Google Sheets er allerede et kraftfuldt værktøj til datahåndtering, men forestil dig at kunne udvide dets funktionalitet langt ud over standardindstillingerne. Med Google Apps Script kan du netop det! Apps Script er en skybaseret JavaScript-platform, der giver dig mulighed for at skabe skræddersyede løsninger, automatisere repetitive opgaver og integrere dine regneark med andre Google-tjenester som Kalender, Drev og Gmail. Denne dybdegående guide vil føre dig gennem de mange måder, hvorpå du kan bruge Apps Script til at transformere din oplevelse med Google Sheets, fra grundlæggende datamanipulation til avancerede brugerflader og automatiserede processer, og vi vil også berøre de vigtige forskelle i funktionalitet på mobile enheder.

- Hvad er Google Apps Script?
- Sådan Interagerer Apps Script med Google Sheets
- Tilpasning af Brugerfladen: Menuer, Dialoger og Sidepaneler
- Automatisering med Triggere
- Tilpasning af Data og Formatering
- Oprettelse af Brugerdefinerede Funktioner (Custom Functions)
- Makroer og Tilføjelsesprogrammer (Add-ons)
- Apps Script på Mobile Enheder: Hvad Fungerer og Hvad Ikke?
- Ofte Stillede Spørgsmål (FAQ)
- Konklusion
Hvad er Google Apps Script?
Google Apps Script er et udviklingsmiljø baseret på JavaScript, der er designet til at arbejde med Google Workspace-applikationer. Det giver dig mulighed for at bygge kraftfulde, tilpassede funktioner og automatiseringer uden at skulle opsætte servere eller bekymre dig om hosting. For Google Sheets specifikt fungerer Apps Script som en bro, der forbinder dit regneark med et væld af muligheder. Du kan bruge det til at:
- Tilføje brugerdefinerede menuer, dialogbokse og sidepaneler til dine Google Sheets.
- Skrive brugerdefinerede funktioner, der kan kaldes direkte fra dine celler, ligesom standardfunktioner som
SUM(). - Integrere data og funktionalitet fra andre Google-tjenester, hvilket åbner op for helt nye arbejdsgange.
- Automatisere kedelige og repetitive opgaver, så du sparer tid og minimerer fejl.
De fleste scripts designet til Google Sheets manipulerer todimensionelle arrays for at interagere med celler, rækker og kolonner i et regneark. Hvis du ikke er fortrolig med arrays i JavaScript, er det en god idé at sætte sig ind i grundlæggende JavaScript-koncepter, da det vil gøre det lettere at forstå, hvordan Apps Script behandler data.
Sådan Interagerer Apps Script med Google Sheets
Apps Script inkluderer specielle API'er, der giver dig mulighed for at oprette, læse og redigere Google Sheets programmatisk. Apps Script kan interagere med Google Sheets på to hovedmåder: Ethvert script kan oprette eller ændre et regneark, hvis scriptets bruger har de rette tilladelser til regnearket. Derudover kan et script være bundet til et regneark, hvilket giver scriptet særlige muligheder for at ændre brugergrænsefladen eller reagere, når regnearket åbnes. For at oprette et bundet script skal du blot vælge Udvidelser > Apps Script direkte i Google Sheets. Dette åbner scripteditoren, hvor du kan begynde at skrive din kode.
Regnearkstjenesten behandler Google Sheets som et gitter, der opererer med todimensionelle arrays. For at hente data fra regnearket skal du få adgang til det specifikke ark, hvor dataene er gemt, derefter få det område af regnearket, der indeholder dataene, og til sidst hente værdierne fra cellerne. Apps Script gør det let at få adgang til data ved at læse de strukturerede data i regnearket og oprette JavaScript-objekter for dem.
Læsning af Data fra Celler
Forestil dig, at du har en liste over produktnavne og -numre gemt i et regneark. Her er et simpelt eksempel på, hvordan du kan hente og logge disse oplysninger:
function logProductInfo() { var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues(); for (var i = 0; i < data.length; i++) { Logger.log('Produktnavn: ' + data[i][0]); Logger.log('Produktnummer: ' + data[i][1]); } }For at se de data, der er blevet logget, skal du klikke på Kørselslog øverst i scripteditoren efter at have kørt funktionen. Denne funktion henter alle data fra det aktive ark og itererer gennem dem for at udskrive hvert produktnavn og -nummer.
Skrivning af Data til Celler
Ligesom du kan læse data, kan du også skrive dem tilbage til dit regneark. For at gemme nye data, f.eks. et nyt produktnavn og -nummer, i regnearket, kan du tilføje følgende kode:
function addProduct() { var sheet = SpreadsheetApp.getActiveSheet(); sheet.appendRow(['Bomuldssweatshirt XL', 'css004']); }Ovenstående kode tilføjer en ny række nederst i regnearket med de specificerede værdier. Hvis du kører denne funktion, vil du se, at en ny række er blevet tilføjet til dit regneark. Dette er en utrolig nyttig funktion til løbende at opdatere eller tilføje data automatisk.

En af de mest brugervenlige måder at gøre dine scripts tilgængelige for andre er ved at tilpasse Google Sheets' brugerflade. Du kan tilføje brugerdefinerede menuer, dialogbokse (pop-up vinduer) og sidepaneler.
Brugerdefinerede menuer er en fremragende måde at gøre dine scripts let tilgængelige direkte fra regnearkets menulinje. Funktionen onOpen() er en speciel, simpel trigger, der kører automatisk, hver gang regnearket åbnes:
function onOpen() { var ui = SpreadsheetApp.getUi(); ui.createMenu('Min Tilpassede Menu') .addItem('Sig Hej', 'myFirstScript') .addToUi(); } function myFirstScript() { SpreadsheetApp.getUi().alert('Hej, Google Apps Script!'); }Når du gemmer dette script og genindlæser dit Google Sheet, vil du se en ny menu kaldet "Min Tilpassede Menu" øverst. Ved at klikke på "Sig Hej" udløses funktionen myFirstScript(), som viser en simpel pop-up besked.
Sidepaneler og Modale Dialoger
For mere komplekse brugerinteraktioner kan du bruge sidepaneler eller modale dialogbokse. Sidepaneler er nyttige, hvis dit script har flere indstillinger, som brugeren skal konfigurere, eller hvis du har brug for en vedvarende widget i Google Sheets' brugerflade. Modale dialoger bruges til at vise en brugerdefineret HTML-brugerflade som et overlay, der blokerer interaktion med regnearket, indtil dialogboksen lukkes. Du kan køre funktioner i dit script fra både sidepaneler og modale dialoger ved hjælp af google.script.run API'en, som muliggør asynkron kommunikation mellem din HTML-brugerflade og dit Apps Script.
Klikbare Billeder og Tegninger
En enkel og visuel måde at udløse et script på er ved at tildele det til et billede eller en tegning direkte i dit regneark. Funktionen vil blive udført, når en bruger klikker på billedet eller tegningen. Dette er ideelt til at skabe tydelige handlingsknapper i dit regneark, som brugere nemt kan interagere med.
Automatisering med Triggere
Triggere er hjertet i automatisering med Apps Script. De giver dig mulighed for at køre funktioner automatisk, når en bestemt begivenhed indtræffer, eller med regelmæssige intervaller. Der er to hovedtyper af triggere:
Simple Triggere
Simple triggere er indbyggede funktioner, der kører automatisk uden at kræve yderligere opsætning eller brugerautorisation (udover den indledende godkendelse af scriptet). De mest almindelige er:
onOpen(): Kører, når et regneark åbnes. Perfekt til at opsætte brugerdefinerede menuer.onEdit(e): Kører, når en bruger ændrer en værdi i regnearket. Parametereneindeholder information om ændringen (f.eks. hvilken celle der blev redigeret).
Selvom simple triggere er nemme at bruge, har de visse begrænsninger, især med hensyn til hvilke tjenester de kan kalde, og de kan ikke køre, hvis regnearket åbnes i skrivebeskyttet tilstand.

Installerbare Triggere
Installerbare triggere tilbyder langt mere fleksibilitet og kan reagere på et bredere udvalg af begivenheder. De kræver brugerautorisation under opsætningen, da de ofte udfører handlinger, der har adgang til brugerens data. De kan konfigureres til at køre ved begivenheder som:
- Ved åbning (
onOpen, men med flere privilegier end den simple version). - Ved redigering (
onEdit, igen med flere privilegier). - Ved ændring (
onChange, f.eks. når rækker indsættes/slettes, data sorteres). - Ved formularafsendelse (
onFormSubmit, når en Google Formular sendes). - Tidsbaseret (f.eks. hver time, dagligt, ugentligt).
Installerbare triggere er ideelle til at automatisere opgaver som at sende e-mails baseret på regnearksdata, opdatere eksterne systemer eller køre rapporter på et fast tidspunkt. For at administrere installerbare triggere skal du klikke på ur-ikonet i Apps Script-editoren.
Her er en sammenligning af de to triggertyper:
| Funktion | Simple Triggere (f.eks. onOpen, onEdit) | Installerbare Triggere (f.eks. onOpen, onEdit, onChange, tidsbaseret) |
|---|---|---|
| Opsætning | Kræver ingen manuel opsætning; bare navngiv funktionen korrekt. | Skal oprettes manuelt i Apps Script-editoren. |
| Autorisation | Kører uden eksplicit brugerautorisation (efter første kørsel/godkendelse af scriptet). | Kræver eksplicit brugerautorisation ved opsætning. |
| Privilegier | Begrænsede privilegier; kan ikke udføre handlinger, der kræver autorisation til andre tjenester (f.eks. sende e-mail). | Fuld privilegier; kan kalde alle Apps Script-tjenester, som brugeren har godkendt. |
| Kørselsmiljø | Kører som den bruger, der interagerer med regnearket. | Kører som den bruger, der oprettede triggeren, uanset hvem der interagerer med regnearket. |
| Fejlhåndtering | Ingen indbygget notifikation ved fejl. | Kan konfigureres til at sende e-mail-notifikationer ved fejl. |
| Mobil support | Begrænset/inkonsistent (se afsnit om mobile enheder). | Kan udløses via mobil interaktion, men UI-elementer er begrænsede. |
Tilpasning af Data og Formatering
Apps Script giver dig fuld kontrol over udseendet og strukturen af dine data i Google Sheets. Du kan ændre celleformatering, anvende datavalidering og endda oprette indlejrede diagrammer.
Formatering af Celler
Klassen Range har metoder som setBackground(color) og setFontStyle(style) for at få adgang til og ændre formateringen af en celle eller et område af celler. Følgende eksempel viser, hvordan du kan indstille skrifttypen for et område til at være kursiv:
function formatMySpreadsheet() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var cell = sheet.getRange('B2:C2'); cell.setFontStyle('italic'); }Datavalidering
Apps Script giver dig mulighed for at få adgang til eksisterende datavalideringsregler i Google Sheets eller oprette nye. For eksempel viser følgende eksempel, hvordan du kan indstille en datavalideringsregel, der kun tillader tal mellem 1 og 100 i en celle:
function validateMySpreadsheet() { var cell = SpreadsheetApp.getActive().getRange('B4'); var rule = SpreadsheetApp.newDataValidation() .requireNumberBetween(1, 100) .setAllowInvalid(false) .setHelpText('Tallet skal være mellem 1 og 100.') .build(); cell.setDataValidation(rule); }Indlejrede Diagrammer
Du kan også integrere diagrammer i et regneark, der repræsenterer data i et specifikt område. Følgende eksempel genererer et indlejret søjlediagram, forudsat at du har diagram-egnede data i cellerne A1:B15:
function newChart() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var chart = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(sheet.getRange('A1:B15')) .setPosition(5, 5, 0, 0) .build(); sheet.insertChart(chart); }Dette giver dig mulighed for at automatisere oprettelsen af visuelle rapporter og dashboards direkte i dine regneark.
Oprettelse af Brugerdefinerede Funktioner (Custom Functions)
En brugerdefineret funktion er ligesom en indbygget regnearksfunktion, såsom =SUM(A1:A5), bortset fra at du definerer funktionens adfærd med Apps Script. For eksempel kunne du oprette en brugerdefineret funktion, in2mm(), der konverterer en værdi fra tommer til millimeter, og derefter bruge formlen i dit regneark ved at skrive =in2mm(A1) eller =in2mm(10) i en celle. Dette er en fantastisk måde at udvide Google Sheets' indbyggede funktioner med din egen logik.
function calculateSquare(number) { return number * number; }Når du har gemt denne funktion, kan du gå tilbage til dit Google Sheet og bruge den direkte i en celle: =calculateSquare(5). Resultatet vil være 25. Dette åbner op for en verden af muligheder for komplekse beregninger eller datahåndtering direkte i dine celler.
Makroer og Tilføjelsesprogrammer (Add-ons)
Makroer
Makroer er en anden måde at køre Apps Script-kode fra Google Sheets' brugerflade. I modsætning til brugerdefinerede funktioner udløses de med en tastaturgenvej eller via Google Sheets-menuen. Du kan optage en makro ved at udføre en række handlinger i dit regneark (f.eks. formatering af et område), og Apps Script vil automatisk generere den tilsvarende kode. Dette er en fremragende start for dem, der er nye til kodning, da det giver et kig på, hvordan Apps Script-kode ser ud i praksis.

Tilføjelsesprogrammer (Add-ons)
Tilføjelsesprogrammer er specielt pakkede Apps Script-projekter, der kører inde i Google Sheets og kan installeres fra Google Sheets add-on-butikken. Hvis du har udviklet et script til Google Sheets og ønsker at dele det med verden, giver Apps Script dig mulighed for at udgive det som et tilføjelsesprogram, så andre brugere kan installere det. Dette er den ultimative måde at skalere dine løsninger og gøre dem tilgængelige for et bredere publikum.
Apps Script på Mobile Enheder: Hvad Fungerer og Hvad Ikke?
Et ofte stillet spørgsmål er, hvordan Apps Script fungerer på Google Sheets-mobilappen. Det er vigtigt at forstå, at der er betydelige forskelle i funktionalitet sammenlignet med desktop-versionen, der kører i en webbrowser.
Generelt gælder det, at mens scripts, der udfører baggrundsoperationer eller manipulerer data direkte (såsom at læse/skrive celler, skjule rækker/kolonner eller formatere), ofte fungerer som forventet, så er interaktive brugerfladeelementer (som modale dialogbokse, sidepaneler og brugerdefinerede menuer, der kræver brugerinput) ikke fuldt understøttet i mobilappen.
For eksempel, som det blev nævnt i et spørgsmål, kan en onOpen()-trigger køre, når et ark åbnes på mobilen, og den kan potentielt udføre handlinger som at skjule rækker eller kolonner. Dog vil et script, der forsøger at vise en brugerdefineret dialogboks (f.eks. via HtmlService.createTemplateFromFile('Index').evaluate().showModalDialog()), sandsynligvis ikke blive vist på mobilappen. Dette skyldes, at mobilappen har et andet brugerflademiljø, der ikke understøtter den samme type webvisninger, som bruges til at gengive disse dialogbokse på desktop.
Desuden er der rapporteret om inkonsekvenser, hvor selv simple data-manipulationsmetoder som clearContent() ikke altid virker pålideligt via simple triggere (som onOpen) i mobilappen, mens andre dele af det samme script (f.eks. hideRows()) fungerer korrekt. Dette indikerer, at mobilappen har visse begrænsninger og potentielle fejl i den måde, den håndterer Apps Script-udførelse på, især for scripts udløst ved åbning eller redigering.

Hvis dit script er afhængig af brugerinteraktion via brugerdefinerede menuer, dialogbokse eller sidepaneler, skal du forvente, at det kun fungerer korrekt i desktop-browserversionen af Google Sheets. For mobilbrugere er det bedst at fokusere på automatiseringer, der kører i baggrunden uden at kræve direkte brugerfladeinteraktion, eller at udløse scripts via installerbare triggere (f.eks. tidsbaserede triggere), som ikke er afhængige af, at brugeren aktivt åbner eller interagerer med regnearket på mobilen.
Ofte Stillede Spørgsmål (FAQ)
Hvordan kører jeg et Apps Script?
Der er mange måder at køre et Apps Script på: direkte fra Apps Script-editoren (godt til test), via brugerdefinerede menuer i Google Sheets, fra sidepaneler eller modale dialogbokse, ved at klikke på billeder eller tegninger i regnearket, automatisk via triggere (tidsbaseret, ved redigering, osv.), som brugerdefinerede funktioner i celler (f.eks. =MINFUNKTION()), ved at køre optagede makroer, eller endda fra en Apps Script-webapplikation.
Kan jeg bruge Apps Script på min telefon?
Ja, men med betydelige begrænsninger. Scripts, der kører i baggrunden eller manipulerer data direkte, kan fungere. Dog er brugerfladeelementer som brugerdefinerede menuer, dialogbokse og sidepaneler generelt ikke understøttet eller fungerer inkonsekvent i Google Sheets-mobilappen. For scripts, der kræver brugerinteraktion, anbefales desktop-versionen.
Hvad er forskellen på en makro og en brugerdefineret funktion?
En makro er en optagelse af en række handlinger, du udfører i Google Sheets, som derefter kan afspilles for at gentage de samme handlinger. En brugerdefineret funktion er en JavaScript-funktion, du skriver i Apps Script, som kan kaldes direkte fra en celle i dit regneark, ligesom en indbygget funktion (f.eks. =SUM()), og den returnerer en værdi til cellen.
Skal jeg være programmør for at bruge Apps Script?
Nej, ikke nødvendigvis! Mens kendskab til JavaScript er en fordel, kan mange begynde at bruge Apps Script ved at optage makroer, tilpasse eksisterende scripts fundet online eller følge simple tutorials. Apps Script er designet til at være tilgængeligt, selv for dem med begrænset programmeringserfaring.
Konklusion
Google Apps Script åbner op for en verden af muligheder for at forbedre din produktivitet og effektivitet i Google Sheets. Fra automatisering af kedelige opgaver til oprettelse af skræddersyede brugerflader og integration med andre Google-tjenester, er Apps Script et uvurderligt værktøj. Selvom der er visse begrænsninger på mobile enheder, overgår fordelene langt ulemperne for de fleste brugsscenarier. Begynd at eksperimentere med Apps Script i dag, og opdag, hvordan det kan revolutionere din måde at arbejde med Google Sheets på!
Hvis du vil læse andre artikler, der ligner Maksimer Google Sheets med Apps Script: Din Komplette Guide, kan du besøge kategorien Mobil.
