我怎樣才能讓這個填充代碼中定義的范圍?
我知道一旦我得到它,我必須遍歷范圍來設定公式,但我就是不知道如何去做:
let formulas = boqPipeworkSheet.getRange(7, 1, 1, 8).getFormulasR1C1();
let rngFormulas = boqPipeworkSheet.getRange(7, 8, boqPipeworkSheet.getLastRow(), 8)
rngFormulas.forEach(c => rngFormulas(c).setFormulas(formulas))
當然,它給了我一個錯誤,因為有很多東西要學習,forEach而且還有很多。
珍惜你的時間。
uj5u.com熱心網友回復:
在你的情況下,下面的修改如何?
修改后的腳本:
var src = boqPipeworkSheet.getRange(7, 1, 1, 8);
var dst = boqPipeworkSheet.getRange(7, 8, boqPipeworkSheet.getLastRow(), 8);
src.copyTo(dst, SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);
筆記:
如果要復制
boqPipeworkSheet.getRange(7, 1, 1, 8)相同范圍的相同公式,可以使用以下修改。var src = boqPipeworkSheet.getRange(7, 1, 1, 8); var dst = boqPipeworkSheet.getRange(7, 8, boqPipeworkSheet.getLastRow(), 8); dst.setFormulas(Array(dst.getNumRows()).fill(src.getFormulas()[0]));
參考:
- 復制到(目的地,復制粘貼型別,轉置)
添加:
當我看到你的腳本時let rngFormulas = boqPipeworkSheet.getRange(7, 8, boqPipeworkSheet.getLastRow(), 8),我以為你想把 的公式復制A7:G7到H8:O. 但是如果要將 的公式復制A7:G7到A8:G,則可以使用以下修改。作為示例腳本,我想添加它,因為我認為此方法可能對其他用戶有用。
var src = boqPipeworkSheet.getRange(7, 1, 1, 8);
var dst = boqPipeworkSheet.getRange(8, 1, boqPipeworkSheet.getLastRow() - 7, 8);
src.copyTo(dst, SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);
uj5u.com熱心網友回復:
在你的坐標中迷失了。請放上你需要的。
表示法:(第 1 行開始,第 1 行開始)
它的作用是將公式從單元格 (7, 1) 復制到 (7, 8)。
然后它將它們放在從第 8 行到最后一行的每一行。第一行是 (8, 1) 到 (8, 8)。
const formulas = boqPipeworkSheet.getRange(7, 1, 1, 8).getFormulasR1C1();
const lastRow = boqPipeworkSheet.getLastRow();
for (let i = 8; i <= lastRow; i ) {
const rngFormulas = boqPipeworkSheet.getRange(i, 1, 1, 8)
rngFormulas.setFormulasR1C1(formulas);
}
詢問您是否需要更多說明!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/404514.html
標籤:
