简体   繁体   中英

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? 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 !

code :

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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