2017-06-18 3 views
1

Wie ändere ich die Höhe mehrerer Zeilen gleichzeitig mit Google Apps Script?Wie ändert man die Höhe mehrerer Zeilen gleichzeitig?

Versuch:

function resizeHeight() { 

  var s = SpreadsheetApp, 
      ui = s.getUi(), 
      sh = s.getActiveSheet(), 
     curntRow = s.getActiveRange().getRow(), 
     rowsMany = s.getActiveRange().getNumRows(), 
     autoRangeRows = s.getActiveRange().getA1Notation().replace(/[a-z]/gi,""), 
      getVal = ui.prompt('⿱⇕', 'Change the height of row❓   Cancel. Back to default❗  (21)', ui.ButtonSet.OK_CANCEL), 
      Btn = getVal.getSelectedButton(), Txt = getVal.getResponseText(); 

    for (var i=curntRow; i<=rowsMany+1; i++) { 
     if (Btn == 'OK') { 
     if (autoRangeRows.search(":") == -1) {sh.setRowHeight(curntRow, Txt);} 
     else {sh.setRowHeight(i, Txt);} 
     } 
     if (Btn == 'CANCEL') { 
     if (autoRangeRows.search(":") == -1) {sh.setRowHeight(curntRow, 21);} 
     else {sh.setRowHeight(i, 21);} 
     } 
    } 
} 

Problem:

Das Skript nicht sehr effektiv ist sie nur auf dem Teil arbeiten oder ein paar Zeilen, aber nicht auf allen Zeilen implementiert werden kann.

+0

Scheint übermäßig kompliziert für mich. – Cooper

Antwort

1

Diese Funktion funktioniert: Sie müssen nur einen aktiven Bereich auswählen, um die Zeilen auszuwählen, deren Höhe Sie ändern möchten, und dann in der Eingabeaufforderung eine Höhe in Pixel angeben.

function changeRowHeight() 
{ 
    var ss=SpreadsheetApp.getActiveSpreadsheet(); 
    var sht=ss.getActiveSheet() 
    var rng=sht.getActiveRange(); 
    var row=rng.getRow(); 
    var numrows=rng.getNumRows(); 
    var resp=SpreadsheetApp.getUi().prompt('Get Row Height', 'Enter Row Height in Pixels', SpreadsheetApp.getUi().ButtonSet.OK); 
    var height = Number(resp.getResponseText()); 
    for(var i=0;i<numrows;i++) 
    { 
    sht.setRowHeight(row + i, height) 
    } 
} 
Verwandte Themen