首页 > 解决方案 > 列历史 - 保存

问题描述

这里的小初学者。我需要从一列复制值并将它们粘贴到另一列中。首先,我尝试了类似“saveHistoryColumn”的东西。它有效,但我不想从 A-ZZ 写变量......因此我正在寻找一些循环,“测试”工作,但我的问题是如何放置来自 B-> A 的原始数据, D-->C 等在一张纸上?从表 1 到同一位置的表的测试副本值...

function saveHistoryColumn() {
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var ss1 = SpreadsheetApp.getActiveSpreadsheet ();

var source = ss.getRange ("Sheet1!B15:B20");
var source2 = ss1.getRange ("Sheet1!D15:D20");

source.copyTo (ss.getRange ("Sheet1!A15:A20"), {contentsOnly: true});
source2.copyTo (ss1.getRange ("Sheet1!C15:C20"), {contentsOnly: true});
}  



function test () {try {
var spread = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spread.getSheetByName("Sheet1");
var rlist = sheet.getRangeList(["B1:B10","D1:D10"]);

sheet = spread.getSheetByName("Sheet2"); // target will be Sheet1 A1:A10,C1:C10... etc.
for( var i=0; i<rlist.getRanges().length; i++ ) {
  var r1 = rlist.getRanges()[i];
  var r2 = sheet.getRange(r1.getA1Notation());
  r1.copyTo(r2);

}}  catch(err) {
Logger.log(err);}}

标签: google-apps-scriptgoogle-sheets

解决方案


你可以使用类似的东西

function backupColumns() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  for(col = 1; col < sheet.getLastColumn(); col+=2) {
    var values = sheet.getRange(1, col + 1, sheet.getLastRow(), 1).getValues();
    sheet.getRange(1, col, sheet.getLastRow(), 1).setValues(values);
  }
}

如果这是您想要的,则将每个偶数列复制到每个奇数列中


推荐阅读