javascript - 使用谷歌工作表脚本移动过滤值(复制和粘贴值),同时忽略列标题/标题

标签 javascript google-apps-script google-sheets google-apps

我只想使用 Google 脚本将值从源工作表复制并粘贴到目标工作表。

我在列中应用了过滤器,因此我只想复制存在/过滤的单元格(不是所有值)。

在我构建的示例中,我有:

源工作表(复制值):Sheet1 目标工作表(将值粘贴到):Sheet2

Sheet1 屏幕截图:

/image/XHfr0.jpg

流程/步骤:

当我在 A 列的“Fav_color”中选择任何特定颜色时……假设为“黄色”。

现在,成员会被相应地过滤。

单击按钮时,我希望运行我的 Google 脚本函数,复制过滤后的成员名称并将其粘贴到 Sheet2 中。

问题: 在表 2 中:我得到列标题/标题以及“成员名称”,而我只想要成员名称(而不是实际的列名称)。

我确实知道我的代码中的问题,我正在复制完整的 B 列,但我不知道如何排除列标题/标题。

function transfer() {
 var sss = SpreadsheetApp.getActiveSpreadsheet();
 var ss = sss.getSheetByName('Sheet1'); 
 var range = ss.getRange('A1:A'); 
 var data = range.getValues();

 var tss = SpreadsheetApp.getActiveSpreadsheet();
 var ts = tss.getSheetByName('Sheet2');
 ts.getRange('A:A').clearContent();

  ts.getRange('A:A').clearContent();
  ss.getRange("B:B").copyTo(ts.getRange("A2"), {contentsOnly:true});

}

最佳答案

问题:

如果您使用,

ss.getRange("B2:B").copyTo(ts.getRange("A2"), {contentsOnly:true});

it always bring the value from B2 cell even if it is not visible in filtered results

解决方案:

您可以使用 Sheet#isRowHiddenByFilter 获取第一个未过滤的行号

片段:

function copycolB() {
  var ss = SpreadsheetApp.getActive();
  var sourceSheet = ss.getSheetByName('Sheet1');
  var targetSheet = ss.getSheetByName('Sheet2');
  for(var row = 2; sourceSheet.isRowHiddenByFilter(row); ++row);//get first  visible row from row2
  var sourceRange = sourceSheet.getRange('B' + row + ':B');
  sourceRange.copyTo(
    targetSheet.getRange('A2'),
    {contentsOnly:true});
}

引用文献:

关于javascript - 使用谷歌工作表脚本移动过滤值(复制和粘贴值),同时忽略列标题/标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57789775/

相关文章:

javascript - 如何指定从应用程序脚本到 IFTTT Maker channel 的可选 JSON 正文?

javascript - 如何使用 .replace() 替换包含按位运算符的字符串部分

javascript - Google Apps 脚本 - 更新时将时间戳添加到多个单元格

javascript - 单击缩略图显示手动定义的图库(花式框)

javascript - Google Apps 脚本日历服务 : How to avoid exceeding maximum execution time?

javascript - 如何将多个 html 表单发送到同一文件/数据库中的不同 google 工作表?我有一张 google 表格,总共有 3 张

regex - 从 Google 表格上的文本中提取特定数字?

date - Google 表格中的自动填充工作日

javascript - 如果 document.activeElement = ""则返回 true 的简单条件

Internet Explorer 中的 Javascript/Ajax 错误帮助