Avatar billede rickiegrayholm Juniormester
22. april 2022 - 14:56 Der er 10 kommentarer og
1 løsning

GetLastRow - Google spreadsheet

Hej Eksperter,

Jeg har fundet følgende kode på nettet og den indsætter også en ny row/række.

Problemet er, at den indsætter den under "knappen". Jeg har brug for, at den skal indsætte den nye row/række efter den sidste. Har prøvet at teste med getLastRow, men kan ikke få det til at virke. Er der nogen der kan hjælpe?

--

const addRowAtMax = () => {
  let maxValue = 0
  let maxRow = addRowAtMax
  const sh = SpreadsheetApp.getActiveSheet()
  const values = sh.getSheetValues(1, 1, -1, 1).forEach( (cell, row) => {
    if(cell[0] > maxValue) {
      maxValue = cell[0]
      maxRow = row
    }
  })
  sh.insertRowsAfter(maxRow + 1, 1)
}

--

God dag :-)
Mvh Rickie
Avatar billede jakobdo Ekspert
22. april 2022 - 15:23 #1
Hvis din sidste række er "knappen", kan du så ikke "bare" rette koden til:

sh.insertRowsAfter(maxRow, 1)

Altså fjern + 1, så "burde" den indsætte den inden knappen.
Avatar billede rickiegrayholm Juniormester
22. april 2022 - 16:34 #2
Hej jakobdo,

Det virker desværre ikke.
Jeg har taget et printscreen som du kan se her: https://ibb.co/sVs184t
Det er ikke udfor hver række men i toppen at knappen er (+)

Får følgende fejl;
Exception: Cannot convert '() => { let maxValue = 0 let maxRow = addRowAtMax const sh = SpreadsheetApp.getActiveSheet() const values = sh.getSheetValues(1, 1, -1, 1).forEach( (cell, row) => { if(cell[0] > maxValue) { maxValue = cell[0] maxRow = row } }) sh.insertRowsAfter(maxRow, 1) }' to i
Avatar billede jakobdo Ekspert
22. april 2022 - 16:57 #3
Hvad med at overveje insertRowsBefore så?
Avatar billede rickiegrayholm Juniormester
22. april 2022 - 17:31 #4
Det virker desværre ikke. Kan jeg dele det med dig?
Avatar billede rickiegrayholm Juniormester
22. april 2022 - 17:36 #5
Tror jeg har "sovset" helt op idet. Måske kan du vise hvordan du ville gøre det - altså hele koden?
Avatar billede jakobdo Ekspert
23. april 2022 - 13:31 #6
Jeg ved slet ikke hvordan jeg får kode til at blive afviklet i google sheets, så det skal jeg lige have luret, inden jeg kan hjælpe yderligere. :)
Avatar billede rickiegrayholm Juniormester
23. april 2022 - 14:54 #7
Det kan jeg tilgængæld hjælpe med :-)

Extensions --> Apps Script. Derefter kan du f.eks. Insert --> Drawing, som jeg har gjort i dette tilfælde og trykke på de 3 prikker og "Assign a script"

God lørdag :-)
Avatar billede expnet Seniormester
24. april 2022 - 09:55 #8
Det her virker ved mig:

function AddNewRow() {
  var Sheet = SpreadsheetApp.getActiveSpreadsheet();
  var indexID = Sheet.getSheets()[0];
  var lastRow = Sheet.getLastRow();
  Sheet.insertRowsAfter(lastRow,1);
  SpreadsheetApp.getUi().alert("Ny række indsat");
}
Avatar billede rickiegrayholm Juniormester
24. april 2022 - 11:58 #9
Du er simpelthen en stjerne :) Det virker præcis som jeg vil.
Tusind tak for hjælpen og rigtig god søndag.
Avatar billede expnet Seniormester
24. april 2022 - 12:28 #10
Velbekommen
Avatar billede rickiegrayholm Juniormester
24. april 2022 - 15:42 #11
..også tak til dig jakobdo for indsatsen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





CIO
Stort CIO-interview: Lemvigh-Müllers milliard-omsætning er blevet digital