このコードは、初めて入力したデータをヘルパーシートと比較し、ヘルパーシートに格納されているデータを返すことによって、変更は既に塗りつぶされたセルで行われます。セルに既に入力されたデータが変更されないようにするコードを修正する
質問:このコードの問題は、複数のセルを選択してキーボードの削除をクリックすると、すべてのセルが削除され、コードが正常に動作しない場合です。どうすればこの問題を解決できますか?
コード:
function onEdit() {
var masterSheetName = "sheet1" // sheet where the cells are protected from updates
var helperSheetName = "Helper" // sheet where the values are copied for later checking
var firstDataRow = 1; // only take into account edits on or below this row
var firstDataColumn = 1; // only take into account edits on or to the right of this column
var ss = SpreadsheetApp.getActiveSpreadsheet();
var masterSheet = ss.getActiveSheet();
if (masterSheet.getName() != masterSheetName) return;
var masterCell = masterSheet.getActiveCell();
if (masterCell.getRow() < firstDataRow || masterCell.getColumn() < firstDataColumn) return;
var helperSheet = ss.getSheetByName(helperSheetName);
var helperCell = helperSheet.getRange(masterCell.getA1Notation());
var newValue = masterCell.getValue();
var oldValue = helperCell.getValue();
if (oldValue == "") {
helperCell.setValue(newValue);
} else {
masterCell.setValue(oldValue);
}
}
質問は何ですか?どの問題を解決しますか?あなたは何を期待していますか? –
問題は、コードが適切に機能しないことです。ユーザーが複数のセルを選択して削除した場合、複数の選択からシートを保護したり、すべてをチェックするためにこのスクリプトを変更するにはどうすればいいですかアクティブなセルだけでなく、ダイナミックにセル? –