有誰知道是否有訪問舊的(即預編輯)公式的一種方式,而不是屬性oldValue,編輯事件對象的?我以爲e.oldFormula會工作,但它是未定義的,甚至沒有在文檔中。如何在谷歌工作表老去式(不屬性oldValue)從onEdit()腳本
我工作的一個腳本來要求輸入密碼進行編輯時,一定範圍內,但是,爲了撤消編輯,如果用戶未能提供正確的密碼,我需要知道什麼是小區前。對於包含數字或字符串細胞,e.oldValue的偉大工程,但最讓我想保護細胞的包含公式(這就是爲什麼我要保護它們),e.oldValue從像它應該停止更新數據。
這裏有我有,如果電池不包含公式(比其他只適用,它的偉大工程的代碼:
// Prompt for password before allowing edit of formula cells
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = sheet.getActiveCell();
var editRange = e.range;
var editCol = editRange.getColumn();
if (editCol != 4) {
var password = "321"; // not actual password
var passwordAttempt = Browser.inputBox('Enter Password to edit protected range, or hit cancel to cancel edit:', Browser.Buttons.OK_CANCEL);
if(passwordAttempt == password) {
Browser.msgBox('Edit Accepted');
} else {
if (passwordAttempt != 'cancel'){
Browser.msgBox('Incorrect password. Contact James Atkins for password to edit protected ranges.');
}
if(e.oldValue){
Browser.msgBox('old value is defined as ' + e.oldFormula);
e.range.setValue(e.oldValue);
} else {
e.range.clear();
}
}
通知你,我這樣做是因爲內置的保護範圍在Google表格中,不會區分用戶是通過手動修改單元格還是通過激活改變內容的腳本來更改單元格的內容,我希望允許所有用戶激活排序和清除特定範圍的腳本,但不允許它們亂用手動的內容。
如果它不存在的官方文檔中,那麼它不存在。向Google團隊建議 –
如果用戶可以激活腳本並編輯單元格,他們也可以看到腳本和密碼。不是嗎? –
我不確定這是否有幫助,但高級雲端硬盤服務可讓您訪問修訂版。也許你可以通過這種方式獲得舊的價值。 [先進的驅動服務(https://developers.google.com/apps-script/advanced/drive) – Cooper