【问题标题】:Google Sheets Script - Set a fixed height to rows (range as int)Google 表格脚本 - 为行设置固定高度(范围为 int)
【发布时间】:2022-10-15 13:14:26
【问题描述】:

我没有成功尝试定期将我的行高重置为某个值:

function clearGuestlist() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var first = ss.getSheetByName("FormsGuestlist");
  var drucksheet = ss.getSheetByName("Druck");
  var tabletsheet = ss.getSheetByName("Tablet");
  var druckrange = drucksheet.getRange('Druck!1:200');
  var tabletrange = tabletsheet.getRange('Tablet!1:200');

  first.clearContents();

  drucksheet.autoResizeRows(1, 200);
  tabletsheet.autoResizeRows(1, 200);

  drucksheet.setRowHeight(druckrange, 31);
  tabletsheet.setRowHeight(tabletrange, 31);
}

不幸的是,autoResizeRows 在我的情况下不起作用,所以我想使用setRowHeight,但它不会接受我的范围,因为它需要一个 int。 知道如何告诉它调整所有行的大小吗?

【问题讨论】:

  • 显然,您必须设置范围,对其进行迭代并沿途设置行高:请参阅@Cooper 的answer
  • 可以问一下The autoResizeRows unfortunately doesn't work in my case的详细信息吗?

标签: google-sheets


【解决方案1】:

Range 类有一个 getRow() 方法,您可以使用该方法以整数形式检索行位置。

您可以在 druckrangetabletrange 对象上调用它来获取位置,然后使用 setRowHeights() 设置所选行数的高度。请注意,您必须使用setRowHeights() 而不是setRowHeight(),因为您必须插入起始行和行数,就像在autoResizeRows() 中一样,而setRowHeight() 只占据单行的位置。

您的代码应如下所示:

function clearGuestlist() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var first = ss.getSheetByName("FormsGuestlist");
  var drucksheet = ss.getSheetByName("Druck");
  var tabletsheet = ss.getSheetByName("Tablet");
  var druckrange = drucksheet.getRange('Druck!1:200');
  var tabletrange = tabletsheet.getRange('Tablet!1:200');

  first.clearContents();

  drucksheet.setRowHeights(druckrange.getRow(), 200, 31); //gets the row position of druckrange as an int, then sets height to 31 pixels for 200 rows
  tabletsheet.setRowHeights(tabletrange.getRow(), 200, 31); //same as above for tabletrange
}

【讨论】:

    猜你喜欢
    • 2019-11-22
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多