3

スプレッドシート内にインストールされたトリガーを使用して onUpdateBilling() を呼び出します。このスクリプトの目的は、列「請求」(つまり「d」) の内容に基づいて編集することで、列全体を所定の色で強調表示することです。

スクリプトを実行するページは共同作業者と共有され、編集権限が付与されています。この時点での私の期待は、スクリプトは所有者のアクセス許可で実行する必要があるということです。共有ユーザーがスクリプトを実行できず、「このアクションに対する権限がありません」というエラーが表示されます。

この回避策について、限られた知識と googlefu に到達しました。

協力者に操作を許可するための助けをいただければ幸いです。

Script:
function onUpdateBilling(e) {

var statusCol = 16; // replace with the column index of Status column A=1,B=2,etc

var sheetName = "Temple Log"; // replace with actual name of sheet containing Status

var cell = SpreadsheetApp.getActiveSheet().getActiveCell();
var sheet = cell.getSheet();
if(cell.getColumnIndex() != statusCol || sheet.getName() != sheetName) return;

var row = cell.getRowIndex();
var status = cell.getValue();

// change colors to meet your needs
var color;
if (status == "D" || status == "d") {
  color = "red";}
  else if (status >= 1) {
    color = "yellow";}
  else if (status == "X" || status == "x") {
    color = "black";}
  else if (status == "") {
    color = "white";}
  else {
  color = "white";
  }

sheet.getRange(row + ":" + row ).setBackgroundColor(color);
}
4

1 に答える 1

2

同じ問題が私にも起こりました。多くの努力の後、スクリプトが更新するシート/範囲の1つが所有者によって保護されていることがわかりました。

所有者が保護を削除すると、問題なく機能しました。

スクリプトは所有者の許可では実行されないことに注意してください。現在ログインしているユーザーのアカウントで実行されます。

それが役に立てば幸い。

于 2012-11-02T06:31:45.173 に答える