我一直在寻找如何做到这一点的日子。到目前为止,我尝试过12种不同的脚本。我可以复制而不是格式化,它会杀了我。我有两张床单。 Sheet A和Sheet B。
我想将A到I列复制到表B上并保留格式。我有两个问题,第一个是它复制一切而不是我想要的列。第二是它不保留格式。我尝试过不同的脚本只是为了格式化和不同的代码行。但到目前为止,没有人对我有用。
当前脚本:
function CopyDataToNewFile() {
var sss = SpreadsheetApp.openById('16QcYsC3mbdcYiPsCp7tPFPX-pCePkaITzfF-bK4ceu0'); // sss = source spreadsheet
var ss = sss.getSheetByName('Sheet1'); // ss = source sheet
var SRange = ss.getDataRange();
var A1Range = SRange.getA1Notation();
var SData = SRange.getValues();
var tss = SpreadsheetApp.openById('16OBwPrYmKnZZkgovDDUYByJhssU2nbRkBD0hCrgvYK4'); // tss = target spreadsheet
var ts = tss.getSheetByName('Sheet1'); // ts = target sheet
ts.clear({contentsOnly: true});
ts.getRange(A1Range).setValues(SData);
}
答案 0 :(得分:2)
我理解你想做的事情如下。
如果我的理解是正确的,那么这个修改怎么样?我认为你的情况有几个答案。所以请把它想象成其中之一。在此修改中,Class Range的copyTo()
和Class Sheet的copyTo()
用于此情况。这个流程如下。
function CopyDataToNewFile() {
var range = "A:K"; // Range you want to copy
// Source
var srcss = SpreadsheetApp.openById("16QcYsC3mbdcYiPsCp7tPFPX-pCePkaITzfF-bK4ceu0");
var srcsheet = srcss.getSheetByName("Sheet1");
var srsrange = srcsheet.getRange(range);
// Destination
var dstss = SpreadsheetApp.openById("16OBwPrYmKnZZkgovDDUYByJhssU2nbRkBD0hCrgvYK4");
var dstrange = dstss.getSheetByName("Sheet1").getRange(range);
// Copy values
var copiedsheet = srcsheet.copyTo(dstss);
copiedsheet.getRange(range).copyTo(dstrange);
dstss.deleteSheet(copiedsheet);
}
如果我误解了你的问题,请告诉我。我想修改它。