谷歌应用程序脚本-如何将数据区域的粘贴值(仅非空单元格)从电子表格复制到另一个电子表格



目标-将所有非空单元格从电子表格-1复制到电子表格-2。

我在网上看到了一些代码,并进行了修改以供使用,分享如下。我需要帮助正确编写脚本,这样就可以选择一个变量范围(即选择非空的直到最后一行和最后一列(,并将数据复制到Spreadsheet-2。我正在努力使其适用于">A1:GZ1000"范围。如果非零(非空(的行/列数增加,脚本需要更新将值传递到Spreadsheet-2的范围。

''

function dataImport(ssaID, ssbID) {
// source doc
var ssaID         = '1DZX1Jb4qwCHETtAENIsRioJvl4TC0hUWZDn_k1q3oes' ;
var sheet = SpreadsheetApp.openById(ssaID);

var ssbID         = '1HptKwYzdWCsz9oey9hOouhWNTQ3GAyu9oswZ1xgP3D0' ;

// source sheet
var ss = sheet.getSheetByName('Data - Price');
// Get full range of data
var SRange = ss.getDataRange();
// get A1 notation identifying the range
var A1Range = SRange.getA1Notation();
// get the data values in range
var SData = SRange.getValues();
// Logger.log(SData) 
// target spreadsheet
var tss = SpreadsheetApp.openById(ssbID);

// target sheet
var ts = tss.getSheetByName('Data - Price');
// Clear the Google Sheet before copy
ts.clear({ contentsOnly: true });
Logger.log(SRange.length);
// set the target range to the values of the source data
var tsRange = ts.getRange(1,1,SRange.length,SRange[0].length);
tsRange.setValues(Sdata);
}

''如果需要,请询问详细信息。

R U

这样试试:

function dataImport(ssaID, ssbID) {
var ssaID = '1DZX1Jb4qwCHETtAENIsRioJvl4TC0hUWZDn_k1q3oes';
var ss = SpreadsheetApp.openById(ssaID);
var ssbID = '1HptKwYzdWCsz9oey9hOouhWNTQ3GAyu9oswZ1xgP3D0';
var sh = ss.getSheetByName('Data - Price');
var rg = sh.getDataRange();
var vs = rg.getValues();
var tss = SpreadsheetApp.openById(ssbID);
var tsh = tss.getSheetByName('Data - Price');
tsh.clearContents();
tsh.getRange(1, 1, vs.length, vs[0].length).setValues(vs);
}

相关内容

最新更新