[英]Google Sheets App Script - Convert a function to an onEdit of a specific cell
我有一個 function 在一系列單元格中設置一個公式,然后將該公式復制下來。 這似乎工作正常。
我想將其轉換為在當前選項卡上編輯單元格 D11 時運行的 onEdit function。
到目前為止,我還沒有多少運氣。
function copyDownAll() {
let ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
ss.getRange("A12:C12").setFormula("=Master!A7");
let noRows = ss.getMaxRows();
let fillDownRange = ss.getRange(12,1,noRows+1,4);
ss.getRange("A12:C12").copyTo(fillDownRange);
let fillDownRange2 = ss.getRange(11,4,noRows+1,1);
ss.getRange("D11").copyTo(fillDownRange2);
}
經過更多搜索后,我發現以下解決方案似乎有效
function onEdit(e) {
if(e.range.getA1Notation() =='D11'){
let ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
ss.getRange("A12:C12").setFormula("=Master!A7");
let noRows = ss.getMaxRows();
let fillDownRange = ss.getRange(12,1,noRows+1,4);
ss.getRange("A12:C12").copyTo(fillDownRange);
let fillDownRange2 = ss.getRange(11,4,noRows+1,1);
ss.getRange("D11").copyTo(fillDownRange2);
};
};
您的評論表明您面臨行錯位的風險。
為避免未來可能出現的麻煩,您可能需要探索將所有數據放在主表中,並讓每個人都在那里進行編輯。
使用過濾視圖讓多個同時用戶編輯工作表而不會互相干擾。 在凍結部分插入鏈接以在過濾器視圖之間輕松切換 - 請參閱過濾器視圖示例電子表格。
為了回答您最初的問題,這類事情通常在 Google 表格中使用arrayformula()或{ array expression }完成。 在單元格A12
中試試這個:
={ Master:A7:C }
此表達式將使用Master
中的值填充A:C
列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.