嗨,堆疊溢位者,
昨天我第一次使用 Google Apps 腳本,我試圖隱藏用戶輸入中給出的某些行。對我來說,這絕對沒問題。如果其他人擁有該作業表的鏈接并且他們被允許編輯某些單元格,他們就可以訪問該作業表。另一位用戶證實他可以訪問 Apps 腳本,因此它實際上已附加到檔案中,但 Apps 腳本似乎不為除我之外的任何人運行。'
function onEdit(e){
if(SpreadsheetApp.getActiveSheet().getSheetName() == "Cooldown")
{
if (e.range.columnStart != 2 || e.range.rowStart != 5) return;
else if(e.value != "TRUE")
{
SpreadsheetApp.getActiveSheet().hideRows(e.range.rowStart 1);
SpreadsheetApp.getActiveSheet().getRange('B6').setValue(false);
}
else SpreadsheetApp.getActiveSheet().showRows(e.range.rowStart 1);
}
else if(SpreadsheetApp.getActiveSheet().getSheetName() == "Benodigde Priesters")
{
if (e.range.columnStart != 2 || e.range.rowStart != 2) return;
else if(e.value != "TRUE")
{
SpreadsheetApp.getActiveSheet().hideRows(e.range.rowStart 1);
SpreadsheetApp.getActiveSheet().hideRows(e.range.rowStart 3);
SpreadsheetApp.getActiveSheet().getRange('B3').setValue(false);
SpreadsheetApp.getActiveSheet().getRange('B5').setValue(false);
}
else
{
SpreadsheetApp.getActiveSheet().showRows(e.range.rowStart 1);
SpreadsheetApp.getActiveSheet().showRows(e.range.rowStart 3);
}
}
}
正如您可能從 Apps 腳本中注意到的那樣,其預期目的是在未選中某個復選框時隱藏某些行,如果選中則顯示這些行。如果 B2 未選中,則第 3 行和第 5 行被隱藏,并且 B3 和 B5 被重置為 false。同樣,如果選中 B2,則顯示第 3 行和第 5 行。
作業表的圖片
uj5u.com熱心網友回復:
您是說用戶“被允許編輯某些單元格”。這意味著床單受到保護。
該onEdit(e)函式是一個簡單的觸發器,在鍵盤上的用戶帳戶下運行。如果該用戶無權編輯您嘗試隱藏的列,則該函式在嘗試隱藏列時將引發錯誤。您可以在My Executions中檢查錯誤。
要使其作業,請將onEdit(e)函式重命名為類似的名稱hideColumns(e)并使用可安裝的“編輯時”觸發器來運行它。可安裝觸發器在設定觸發器的用戶帳戶下運行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/419478.html
標籤:
