如何通过Google Apps Script一次更改多行的高度?
尝试:
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);}
}
}
}
问题:
该脚本不是很有效,它们只适用于部分或几行,但不能在所有行上实现。
这个函数有效:你只需要选择一个活动范围来选择要更改高度的行,然后在提示中给它一个以像素为单位的高度。
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)
}
}