【发布时间】:2018-12-12 00:26:03
【问题描述】:
我想通过应用脚本比较两个不同谷歌电子表格中每个单元格的值,并更改单元格的背景颜色以显示单元格已更新,但我得到一个 “无法从未定义中读取属性“0.0”。(第 16 行,文件“代码”)” 我已经尝试过 opensheetbyname 并得到它的范围仍然无法正常工作。谷歌搜索此错误未找到解决方案 这是我的代码
function myFunction() {
var sheet1 = SpreadsheetApp.openById("1-l21-
2B7KZ5sBaRh9kmUFOyeDyP1Pnp1_IqhVlAJJR0");
var lastRow = sheet1.getSheetByName("Sheet1").getLastRow();
var lastCol = sheet1.getSheetByName("Sheet1").getLastColumn();
var data = sheet1.getDataRange().getValues();
var sheet2 =
SpreadsheetApp.openById("1YOQjiHZXg86XGmFZ0d5noOoLdowc_JFn3wGjICymi_o");
var lastRow2 = sheet2.getSheetByName("Sheet1").getLastRow();
var lastCol2 = sheet2.getSheetByName("Sheet1").getLastColumn();
var data2 = sheet2.getDataRange().getValues();
for(i = 0; i<=lastRow2; i++){
for(j = 0; j<=lastCol2; j++){
if(data[i][j] != data2[i][j]){
sheet1.getActiveCell().setBackground("#FFFF00");
}
}
}
}
更新代码
function myFunction() {
var sheet1 = SpreadsheetApp.openById("1Ibyd4QbrAhLMSD_GjIQYEwGCYrbtNTbMKF7vRA-Rc9Q").getSheetByName("Sheet1");
var lastRow = sheet1.getLastRow();
var lastCol = sheet1.getLastColumn();
var data = sheet1.getDataRange().getValues();
var sheet2 =
SpreadsheetApp.openById("1YOQjiHZXg86XGmFZ0d5noOoLdowc_JFn3wGjICymi_o");
var lastRow2 = sheet2.getSheetByName("Sheet1").getLastRow();
var lastCol2 = sheet2.getSheetByName("Sheet1").getLastColumn();
var data2 = sheet2.getDataRange().getValues();
for(i = 3; i<lastRow2; i++){
for(j = 1; j<lastCol2; j++){
if(data[i][j] != data2[i][j]){
sheet1.getRange(i + 1, j + 1).setBackground("#FFFF00");
}
}
}
}
我还设置了编辑触发器以使其工作
【问题讨论】:
标签: google-apps-script google-sheets