首页 > 解决方案 > 我需要将 Google Sheet 1 中的数据复制到 Google Sheet2 中的一行

问题描述

我对整个脚本业务非常陌生,我正在寻找一些建议来解决我的问题。我尝试将数据从表 1(搜索)中的列范围 (H3:H10) 复制到表 2(数据)中的第一个空闲行。我发现了这段代码(来自 Kos,2017 年编写),我认为它可以解决问题。不幸的是,我不知道如何更改代码,因此它将数据写入第一个空闲行,而不是将整个数据写入第一个空闲行的 1 列。

这里有谁能帮助我吗?

function copyPaste() 
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var copySheet = ss.getSheetByName("Search");
var pasteSheet = ss.getSheetByName("Data");
// get source range
var source = copySheet.getRange(3,8,8,1);
// get destination range
var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,1,1,1);
// copy values to destination range
source.copyTo(destination);
// clear source values
source.clearContent();
}

在此处输入图像描述

标签: google-apps-scriptgoogle-sheetscopytranspose

解决方案


复制H3:H到 Sheet2 中的第一个空行

function copyColToRow() {
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getSheetByName('Sheet1');
  const vs=sh.getRange(3,8,sh.getLastRow()-2,1).getValues().map(function(r){return r[0];});
  const osh=ss.getSheetByName('Sheet2');
  osh.getRange(osh.getLastRow()+1,1,1,vs.length).setValues([vs]);
}

电子表格参考

Array.map 方法


推荐阅读