Google apps script 是否有一种通过脚本移动数据列的简单格式?

Google apps script 是否有一种通过脚本移动数据列的简单格式?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我想将几行从一个工作表移动到另一个工作表,但我正在查看的所有脚本都无法解决这个问题 例如,我想将图纸1上的A、B、C列移动到图纸2上的G、I、L列 这能做到吗?我对脚本编写非常陌生,没有一个我正在做的例子 谢谢。这可以通过简单的代码完成: function moveCols() { var ss = SpreadsheetApp.getActive(); var sourceSheet = ss.getSheetByName('Sheet1'); var destSheet = ss.getSh

我想将几行从一个工作表移动到另一个工作表,但我正在查看的所有脚本都无法解决这个问题

例如,我想将图纸1上的A、B、C列移动到图纸2上的G、I、L列

这能做到吗?我对脚本编写非常陌生,没有一个我正在做的例子


谢谢。

这可以通过简单的代码完成:

function moveCols() {
var ss = SpreadsheetApp.getActive();
var sourceSheet = ss.getSheetByName('Sheet1');
var destSheet = ss.getSheetByName('Sheet2');
sourceSheet.getRange('A:A').moveTo(destSheet.getRange('G1'))
sourceSheet.getRange('B:B').moveTo(destSheet.getRange('I1'))
sourceSheet.getRange('C:C').moveTo(destSheet.getRange('L1'))
}
如果只想复制数据(而不是移动数据),请将.moveTo()方法更改为copyTo()

编辑:如果需要将列移动到其他电子表格,请尝试:

function moveCols() {
var sourceSheet = SpreadsheetApp.getActive()
    .getSheetByName('Sheet1'),
    destSheet = SpreadsheetApp.openById('ID_OF_DESTINATION_SHEET')
        .getSheetByName('Sheet2'),
    sourceRanges = ['A:A', 'B:B', 'C:C'],
    targetRanges = [7, 9, 12]
        .map(function (r, i) {
            var sr = sourceSheet.getRange(sourceRanges[i]),
                val = sr.getValues();
            destSheet.getRange(1, r, val.length, val[0].length)
                .setValues(val);
            sr.clear()
        });
}

抱歉,移动多个列而不是行是否要像中那样移动,从原始位置删除数据并粘贴到其他工作表中,或者只是复制所需数据并粘贴到其他位置?理想情况下,我希望在不同的电子表格上制作和更新,并将数据移动到第二个电子表格。数据将被复制,但我需要映射到某些列。后续问题:我可以从两个不同的工作表移动吗?例如:将A、B、C列从工作表1第1页移动到工作表2第1页中的G、H、I?当我尝试时,它告诉我范围必须在同一个电子表格中。是否要在两个电子表格之间移动行?是的,这确实是可能的。我需要像公式一样添加电子表格名称吗?例如:“thisData.getRange('I2:I120').copyTo(toRange.getRange('A2'))”需要是“thisData.getRange('2015年第二季度v2!I2:I120')。copyTo(toRange.getRange('Raw Data!A2'))”?不,这不起作用。回答了我自己的问题。但仍在处理源和目标范围,需要在同一个电子表格上。