2016-05-11 8 views
1

私はこのエラーを取得しています: 「この行に(クラス)の範囲を変換できません:Googleのスクリプト:(クラス)の誤差の範囲を変換することはできません

var cellFrom = ss.getRange(rowFrom, i).getCell(1,1); 

これは、関数である:

function copyValidations(sheetName, rowFrom, rowTo, column, numColumns) { 
/* Copy validations of all cells in rowFrom to cells in rowTo, starting at column.\*/ 

    var sh = SpreadsheetApp.getActiveSpreadsheet(); 
    var ss = sh.getSheetByName(sheetName); 

    for (var i = column;i<= column + numColumns;i++) { 
    var cellFrom = ss.getRange(rowFrom, i).getCell(1,1); 
    var cellTo = ss.getRange(rowTo, i).getCell(1,1); 
    copyCellDataValidation(cellFrom, cellTo); 
    } 
} 

function copyCellDataValidation(cellFrom, cellTo) { 
/* Copies the data validation rules and data from a single cell to another cell 
*/ 

    var rule = cellFrom.getDataValidation(); 
    if (rule != null) { 
    var criteria = rule.getCriteriaType(); 
    var args = rule.getCriteriaValues(); 
    cellTo.setDataValidation(rule.copy().withCriteria(criteria, args).build()); 
    } else { 
    //Logger.log('copyCellDataValidation: The cell does not have a data-validation rule.') 
    } 
} 

私は目を修正するための提案が見つかりました:私はcopyCellDataValidationに、単一のセル範囲を渡す必要が

setValues()が関わっているときはエラーですが、ここで私を助けるものはありません。 ありがとうございます!

答えて

1

問題が見つかりました。

整数の代わりに範囲オブジェクトを関数に渡していました。 ここで動作しています:

function copyValidations(sheetName, rowFrom, rowTo, column, numColumns) { 
/* Copy validations of all cells in rowFrom to cells in rowTo, starting at column.\*/ 

    var sh = SpreadsheetApp.getActiveSpreadsheet(); 
    var ss = sh.getSheetByName(sheetName); 

    for (var i = column;i<= column + numColumns;i++) { 
    var cellFrom = ss.getRange(rowFrom, i); 
    var cellTo = ss.getRange(rowTo, i); 
    copyCellDataValidation(cellFrom, cellTo); 
    } 
} 
関連する問題