繁体   English   中英

使用Google表格脚本移动过滤后的值(复制和粘贴值),而忽略列标题/标题

[英]Moving filtered values (copy and paste values) using google sheet script while ignoring the column heading / title

我想使用Google脚本仅将VALUES从源表复制并粘贴到目标表。

我在该列中应用了过滤器,因此我只希望复制存在/已过滤的单元格(并非所有值)。

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

源工作表(来自的复制值):Sheet1目标工作表(至的粘贴值):Sheet2

Sheet1屏幕截图:

https://i.imgur.com/TySwfpb.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});

即使它在过滤结果中不可见,也总是从B2单元格中获取值

解:

您可以使用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});
}

参考文献:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM