![](/img/trans.png)
[英]Google Sheet - Copy Rows from Multiple Sheets into a Single Summary Sheet
[英]Google Apps Script for copying an array from multiple sheets onto a single Status Summary sheet
我一直試圖找到一個我可以復制的腳本用於我的目的(對我的特定工作表進行了一些修改),但沒有什么是我需要它做的事情,我沒有編寫技巧從頭開始編寫。
我有一個包含多個工作表的Google電子表格,我們將不斷添加新工作表,我們推出的每個新產品都有一個。 每個工作表(包括從模板創建的新工作表)都具有該產品的啟動准備狀態的“概覽”摘要。 它始終位於每張紙上的M3:M10。
我有一個狀態摘要表,我想在每張表中粘貼M3:M10中的信息。 這將使我們能夠在發布之前快速查看每個產品的狀態摘要,而無需我們檢查每個特定工作表的選項卡。
這是我理想的情況:
我不需要包含的床單名稱。
有人能為我寫這個嗎? 我正在嘗試自學如何編寫這些腳本的代碼,因此對每個部分所做的一些“//”解釋將是一個巨大的幫助。 謝謝你的期待!
嘗試這個:
function atAGlance() {
var ss=SpreadsheetApp.getActive();
var excl=['Status Summary'];
var sh=ss.getSheetByName('Status Summary');
var shts=ss.getSheets();
var n=1;
for(var i=0;i<shts.length;i++) {
if(excl.indexOf(shts[i].getName())==-1){
var v1=shts[i].getRange("M3:M10").getValues();
var v2=transpose(v1);
sh.getRange(1 + n++,1,v2.length,v2[0].length).setValues(v2);
}
}
}
//https://stackoverflow.com/a/16705104/7215091
function transpose(a)
{
return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}
得到了來自轉置[ https://stackoverflow.com/a/16705104/7215091] ( https://stackoverflow.com/a/16705104/7215091 )
此版本允許您從流程中排除工作表,您可以在testAtAGlance()函數中運行它,如下所示。 我使用的示例排除了“狀態摘要”和“全局”。
function testAtAGlance() {
atAGlance(['Status Summary','Globals']);
}
function atAGlance(excl) {
var excl=excl || ['Status Summary'];
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Status Summary');
var shts=ss.getSheets();
var n=1;
for(var i=0;i<shts.length;i++) {
if(excl.indexOf(shts[i].getName())==-1){
var v1=shts[i].getRange("M3:M10").getValues();
var v2=transpose(v1);
sh.getRange(1 + n++,1,v2.length,v2[0].length).setValues(v2);
}
}
}
//https://stackoverflow.com/a/16705104/7215091
function transpose(a)
{
return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.