有人可以告诉我如何通过Google脚本复制多个单元格并将其合并为一个单元格吗?
这是我现在编写的函数。问题是源单元格范围内的多个单元格将被精确复制到目标单元格中。
相反,我只想将其合并到一个单元格中。
function copyToSheet() {
var srcTitle=getActiveSheet().getRange("C7");
var srcText=getActiveSheet().getRange("C22:C28");
var srcOptions=getActiveSheet().getRange("C32:C41");
var srcListings=getActiveSheet().getRange("C44:C60");
var extractedValues = [srcTitle, srcText, srcOptions, srcListings]
var dstTitle="C4";
var dstText="D4";
var dstOptions="E4";
var dstListings="F4";
var dstList = [dstTitle, dstText, dstOptions, dstListings]
var index;
for (index = 0; index < extractedValues.length; ++index) {
extractedValues[index].copyTo(getDestinationSheet().getRange(dstList[index]), {contentsOnly:true})
}
}
答案 0 :(得分:2)
复制并合并
function copyToAndMerge() {
var ss=SpreadsheetApp.getActive();
var ssh=ss.getSheetByName('Sheet1');//src sheet
var dsh=ss.getSheetByName('Sheet2');//des sheet
var v=[];
var rgA=['C7','C22:C28','C32:C41','C44:C60'];//input ranges
rgA.forEach(function(rg){
var vA=ssh.getRange(rg).getValues();
vA.forEach(function(r,i){v=v.concat(r);});
});
//Logger.log(v);
//v.sort(function(a,b){return a-b;});//if you want to sort the output this sorts numerically
dsh.getRange(1,1).setValue(v.join(', '));//output cell you can change the delimiter
}
输出单元格:
输入只是C列下的顺序号。
答案 1 :(得分:0)
使用dsh.getRange(1,1).setValue(v.join(', '));
受到@cooper的启发
我一直认为我只能在对象上运行复制功能。相反,我本可以在工作表对象上使用setValue函数。
function copyToSheet() {
var srcTitle=getActiveSheet().getRange("C7").getValue();
var srcText=getActiveSheet().getRange("C22:C28").getValues();
var srcOptions=getActiveSheet().getRange("C32:C41").getValues();
var srcListings=getActiveSheet().getRange("C44:C60").getValues();
var extractedValues = [srcTitle, srcText, srcOptions, srcListings]
var dstTitle="C4";
var dstText="D4";
var dstOptions="E4";
var dstListings="F4";
var dstList = [dstTitle, dstText, dstOptions, dstListings]
var index;
for (index = 0; index < extractedValues.length; ++index) {
getDestinationSheet().getRange(dstList[index]).setValue(extractedValues[index]);
}
}