【问题标题】:Google Sheets - Transpose Sheet NamesGoogle 表格 - 转置表格名称
【发布时间】:2021-10-02 10:45:40
【问题描述】:

我希望将工作表名称列表转置,因此不是从 H4 开始并向下行,而是从 H4 开始并跨列设置。

我认为sheet.getRange("H4:H").clear(); 需要更改为sheet.getRange("H4:4").clear();

但我不知道如何更改其余代码以实现我所需要的。

function sheetNames() {
  const ss = SpreadsheetApp.getActive();
  const sheetNames = ss.getSheets().map(sheet => [sheet.getName()]);
  const sheet = ss.getSheetByName("Master");
  sheet.getRange("H4:H").clear();
  sheet.getRange(4,8,sheetNames.length).setValues(sheetNames);
};

再次感谢您的帮助!

【问题讨论】:

  • 道歉@Yuri Khristich。是的,您提供的代码有效。非常感谢。

标签: google-apps-script google-sheets


【解决方案1】:

只需要两个小改动:

function sheetNames() {
  const ss = SpreadsheetApp.getActive();
  const sheetNames = ss.getSheets().map(sheet => sheet.getName // <-- here
  const sheet = ss.getSheetByName("Master");
  sheet.getRange("H4:4").clear(); // to clear the range is a good idea
  sheet.getRange(4,8,1,sheetNames.length).setValues([sheetNames]); // <-- here
};

在您的原始代码中,您会得到这样的名称数组:

[[name1],
 [name2],
 [name3]]

这意味着 1 列 3 行。

在修改后的代码中你会得到这样的数组:

[ name1, name2, name3 ]

这意味着一行有 3 个单元格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多