如何一次更改多行的高度?

时间:2017-06-18 19:57:38

标签: google-apps-script google-sheets

如何通过Google Apps脚本一次更改多行的高度?

尝试:

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);}
      }
   }
}

问题:

脚本不是很有效,它们只能在部分或几行上工作,但不能在所有行上实现。

1 个答案:

答案 0 :(得分:1)

此功能有效:您只需选择一个活动范围来选择要更改其高度的行,然后在提示中为其指定高度(以像素为单位)。

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)
  }
}