我帶著一個相當具體的詢問來到這里,我自己無法完全弄清楚,因為我可能為此遇到了某種語言障礙。
本質上,我有這個功能:
function moneyowened() {
var out = new Array()
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i=2 ; i<sheets.length ; i ) out.push([sheets[i].getRange("a44").getValue()])
return out
}
它完美地滿足了它的預期目的,因為它在第二張之后從每張紙的每個值中生成了一個陣列。現在,對于另一個專案,我想把它復制過來,因為它需要類似的任務。
不同之處在于:需要復制的目標是一個實際的值范圍。(特別是一行)
困難在于這個因素,因為我無法弄清楚如何使它真正適用于一系列值。它要么回傳空白欄位,要么只回傳第一個值。
我很自然地嘗試應用“getValues”和宣告范圍的不同方式,但是,我只得到一個空白行或我需要復制的行的第一個值。
我可以解決這個問題的一種方法自然是簡單地創建一個函式來獨立地獲取每個值,但這將非常乏味,因此,我想問是否有我不知道的解決方案。
非常感謝您提供的任何幫助。
嘗試的變體串列:
for (var i=2 ; i<sheets.length ; i ) out.push([sheets[i].getRange("a44:z44").getValues()])
這導致空白行
uj5u.com熱心網友回復:
獲取行
function getRow44() {
var out = [];
SpreadsheetApp.getActive.getSheets().forEach((sh, i) => {
if (i > 1) out.push(sh.getRange(44,1,1,sh.getLastColumn()).getValues().flat());
});
console.log(JSON.stringify(out));
return out;
}
uj5u.com熱心網友回復:
這是一個很好的方法:
function getRow44() {
return SpreadsheetApp.getActiveSpreadsheet()
.getSheets()
.slice(2)
.flatMap(i => i.getSheetValues(44, 1, 1, i.getLastColumn()))
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/473301.html
