我對 App Script 完全陌生。我的任務是更新其他人撰寫的一些代碼。這是我的問題。
主表包含日期。第 1 行是年/月/日。第 2 行列出了每一天所屬的作業表,例如 2020/1。第 3 行是月份,第 4 行是日(數字),第 5 行是日(作業日)。在第 6 行,用戶可以選擇 3 個選項(休息日、作業日、半天)。如果選擇了任何選項,相應的作業表將被更新。
例如,如果選擇了 2020/1/16 休息日,則名稱為“2020/1”的電子表格將被更新。“2020/1”表有一個作業日列,2020/1/16 行的單元格將更新為“作業日”。這部分代碼作業正常。我想要做的是更改“2020/1”中的值并在主表中更新它。因此,例如,如果作業表名稱“2020/1”中的 2020/1/16 更改為“作業日”,我希望主作業表更新。現在它只從主表更新,而不是相反。
我嘗試使用 onEdit 函式更新它,但我不確定它是如何作業的。我正在尋找任何 onEdit 函式示例,以檢查是否在一個選項卡中進行了編輯,并使用該值更新不同選項卡中的單元格。由于您無法控制臺日志或 Logger.log 編輯時的資料,因此我很難弄清楚這一點。
截圖:
https://photos.app.goo.gl/3hjjMrUXfctsnMk69
https://photos.app.goo.gl/tnNue4NTgKM1cb2u8
到目前為止,這是我的功能:
var sheet = ss.getActiveSheet(); //アクティブなシート
var sheetName = sheet.getSheetName();
var atvc = sheet.getActiveCell(); //アクティブセル
//休日シートの休日を変更した時だけ
if(sheetName !=='休日' || sheetName && atvc.getColumn() == 4){
var flag = atvc.getValue(); //休日かどうか
// var targetSheetName = String(atvc.offset(1, -4).getValue()); //対応するシート名
// var targetSheetName = "休日"
var targetDate = Utilities.formatDate(atvc.offset(1, -3).getValue(),"JST", "yyyy/MM/dd"); //対応する日付
var targetSheet = ss.getSheetByName("休日");
var lastRow = targetSheet.getLastRow();
var values = targetSheet.getRange(1,1,lastRow,1).getValues();
// 取得したデータから一致する日付を探す
for (var i=7; i<lastRow; i ){
var d = Utilities.formatDate(values[i][0],"JST", "yyyy/MM/dd");
// 一致したら狀態を更新
if(d == targetDate){
var range = targetSheet.getRange(i,6);
// データ追加
range.setValue(flag);
}
}
}
}
uj5u.com熱心網友回復:
基本上可以用這個函式來完成:
function onEdit(e) {
if (e.range.columnStart != 4) return;
var ss = e.source;
var active_sheet = ss.getActiveSheet();
if (active_sheet.getName() == 'Sheet1') return;
var date = active_sheet.getRange(e.range.rowStart,1).getDisplayValue();
var dest_sheet = ss.getSheetByName('Sheet1');
var all_dates = dest_sheet.getRange('A:A').getDisplayValues().flat();
var dest_row = all_dates.indexOf(date) 1;
dest_sheet.getRange(dest_row,6).setValue(e.value);
ss.toast('The day ' date ' has been changed to ' e.value);
}
每當您更改除作業表“Sheet1”以外的任何作業表上第 4 (D) 列中的某些內容時,它會將更改后的單元格的值復制到具有相同日期(在第 1 (A) 欄)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/367950.html
標籤:谷歌应用程序脚本
