国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Google Sheets 代碼:解決權(quán)限問題和數(shù)據(jù)放置錯誤
P粉896751037
P粉896751037 2024-04-03 09:26:47
0
1
727

我正在使用 Google 腳本編寫我的第一個代碼。我的代碼遇到問題,它沒有訪問 Google 表格所需的權(quán)限。嘗試執(zhí)行代碼時,我收到錯誤消息“異常:您無權(quán)調(diào)用 SpreadsheetApp.openById”。該代碼旨在修改和檢索 Google 表格電子表格中的數(shù)據(jù)。

除了權(quán)限問題之外,代碼中還有一個特定行為需要解決。該代碼旨在將信息傳輸?shù)?Google Sheets 電子表格中的特定行,但目前正在將數(shù)據(jù)傳輸?shù)诫娮颖砀裰獾奈恢?。例如,如果電子表格中?9 行有可用的空白空間,則代碼會錯誤地將信息傳輸?shù)奖硗鉀]有格式或結(jié)構(gòu)的其他位置。我在下面附上了我的代碼

function onEdit(e) {
  var sourceSheet = e.source.getActiveSheet();
  var editedRange = e.range;
  var column = editedRange.getColumn();
  var row = editedRange.getRow();
  
  if (column > 1 && row > 1) {
    var technicianNameCell = sourceSheet.getRange(row, 13);
    var technicianName = technicianNameCell.getValue();
    var dataValues = [];
    
    var columnsToCopy = [1, 2, 3, 4, 5, 6, 7, 11, 12]; // A, B, C, D, E, F, G, J
    
    for (var i = 0; i < columnsToCopy.length; i++) {
      var value = sourceSheet.getRange(row, columnsToCopy[i]).getValue();
      dataValues.push(value);
    }
    
    var targetSpreadsheetIds = {
      "technicianName": {
        "spreadsheetId": "spreadsheetId",
        "sheetName": "sheetName"
      },
      "technicianName": {
        "spreadsheetId": "spreadsheetId",
        "sheetName": "sheetName"
      },
      "technicianName": {
        "spreadsheetId": "spreadsheetId",
        "sheetName": "sheetName"
      }
    };
    
    var targetSpreadsheet = targetSpreadsheetIds[technicianName];
    
    if (targetSpreadsheet) {
      var targetSheet = SpreadsheetApp.openById(targetSpreadsheet.spreadsheetId).getSheetByName(targetSpreadsheet.sheetName);
      var lastRow = targetSheet.getLastRow();
      var firstEmptyRow = lastRow + 1;
      
      var targetRange = targetSheet.getRange(firstEmptyRow, 1, 1, dataValues.length);
      targetRange.setValues([dataValues]);
    }
  }
}

我嘗試實現(xiàn)一個代碼來修改和檢索 Google 表格電子表格中的數(shù)據(jù)。我希望代碼具有訪問電子表格并執(zhí)行所需操作的必要權(quán)限。具體來說,我希望代碼能夠使用傳輸?shù)男畔⑻畛潆娮颖砀裰械目瞻卓臻g,同時保留表格的格式和結(jié)構(gòu)。

然而,實際的結(jié)果是代碼遇到了權(quán)限問題。執(zhí)行代碼時出現(xiàn)“Exception: You do not have permission to call SpreadsheetApp.openById”錯誤。此外,傳輸?shù)男畔⒈环胖迷诒砀裰獾奈恢?,沒有格式或結(jié)構(gòu)。

Google 表格代碼中的數(shù)據(jù)放置

好吧,事情就這樣了。我正在使用的代碼非常擅長查找表中的空白點。唯一的問題是,它最終將數(shù)據(jù)放在我擁有的實際表之外。您看,代碼認(rèn)為表中的格式是完整的行,因此它沒有將數(shù)據(jù)準(zhǔn)確地放置在我希望的行中的位置。在此處輸入圖像描述

我現(xiàn)在擁有的代碼

function myEditTrigger(e) {
  const sh = e.range.getSheet();
  if (sh.getName() == "Sheet Name" && e.range.columnStart > 1 && e.range.rowStart > 1) {
    const [a, b, c, d, e, f, g, , , k, l, m] = sh.getRange(e.range.rowStart, 1, 1, sh.getLastColumn()).getValues()[0];
    let vs = [a, b, c, d, e, f, g, k, l];
    var tObjs = {
      "techname": {
        "spreadsheetId": "spreadsheetId",
        "sheetName": "sheetName"
      },
   
    };
    var tObj = tObjs[m];
    if (tObj) {
      var tsh = SpreadsheetApp.openById(tObj.spreadsheetId).getSheetByName(tObj.sheetName);
      tsh.getRange(tsh.getLastRow() + 1, 1, 1, vs.length).setValues([vs]);
    }
  }
}

P粉896751037
P粉896751037

全部回復(fù)(1)
P粉521697419

使用可安裝的觸發(fā)器并重命名觸發(fā)器函數(shù),不要使用onEdit

function onMyEdit(e) {
  const sh = e.range.getSheet();
  if (sh.getName() == "Sheet Name" && e.range.columnStart > 1 && e.range.rowStart > 1) {
    const [a,b,c,d,e,f,g,,,,k,l,m] = sh.getRange(e.range.rowStart, 1 , 1, sh.getLastColumn()).getValues()[0];
    let vs = [a,b,c,d,e,f,g,k,l];
    var tObjs = {"technicianName": {"spreadsheetId": "spreadsheetId","sheetName": "sheetName" },...};//Hard code the objs or make them global
    var tObj = tObjs[m];
    if (tObj) {
      var tsh = SpreadsheetApp.openById(tObj.spreadsheetId).getSheetByName(tObj.sheetName);
      tsh.getRange(tsh.getLastRow() + 1, 1, 1, vs.length).setValues(vs);
    }
  }
}
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板