简体   繁体   English

我认为我在Google Apps脚本代码中有错误

[英]I think I have an error in Google Apps Script code

I'm using Google Sheets, and attempting to create a menu that will allow me to run my choice of several scripts, I'm doing something wrong and not quite sure what, could someone read over this and let me know what appears to be wrong? 我正在使用Google表格,并试图创建一个菜单来允许我运行几种脚本的选择,但我做错了事,但不确定什么,有人可以读一遍,让我知道看起来是什么吗?错误? Thanks in advance. 提前致谢。

function onOpen() {
 var menu = DocumentApp.getUi().createMenu('Menu');
 menu.addItem('Compare sheets', 'compare');
 menu.addItem('Clear Formats', 'clear');
 menu.addToUi();
}

function compare() {
    var ss = SpreadsheetApp.getActive(),
        master = ss.getSheetByName('NewData'),
        newData = ss.getSheetByName('Master'),
        dif = ss.getSheetByName('Comparison'),
        rows = 500,
        columns = 52,
        bg = [],
        dateCols = [14, 24, 29, 36, 37],
        masterDataRange = master.getRange(1, 1, rows, columns),
        masterValues = masterDataRange.getValues(),
        newDataValues = newData.getRange(1, 1, rows, columns)
            .getValues();
    dif.getDataRange()
        .clear()
        .setBackground('White');
    for (var i = 0, rl = masterValues.length; i < rl; i++) {
        var r = [];
        for (var j = 0, cl = masterValues[0].length; j < cl; j++) {
            if (dateCols.indexOf(j) > -1 && i > 1) {
                if (masterValues[i][j] ) masterValues[i][j] = Utilities.formatDate(new Date(masterValues[i][j]), Session.getScriptTimeZone(), "MM/dd/yyyy HH:mm");
                if (newDataValues[i][j] ) newDataValues[i][j] = Utilities.formatDate(new Date(newDataValues[i][j]), Session.getScriptTimeZone(), "MM/dd/yyyy HH:mm");              
            }
            r.push(i < 2 ? "white" : masterValues[i][j] !== newDataValues[i][j] ? "green" : "white");
            }
         bg.push(r);
        }
    dif.getRange(1, 1, masterValues.length, masterValues[0].length)
        .setValues(masterValues)
        .setBackgrounds(bg);
}

function clear(){
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var first = ss.getSheetByName("Master");
 first.clearFormats();
 }

You are using DocumentApp in a spreadsheet, you should use SpreadsheetApp instead ! 您正在电子表格中使用DocumentApp ,而应使用SpreadsheetApp

code : 代码:

function onOpen() {
 var menu = SpreadsheetApp.getUi().createMenu('Menu');
 menu.addItem('Compare sheets', 'compare');
 menu.addItem('Clear Formats', 'clear');
 menu.addToUi();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM