2017-01-14 5 views
0

У меня есть простой скрипт Google, я пытаюсь работать, но я не могу понять свою ошибку.Переместить значение ячейки в другую ячейку в той же таблице

Функция хочет переместить текст, который не выделен жирным шрифтом, из одной части таблицы в другую после того, как он найдет пустую ячейку.

Я проверял я могу получить значения, если значения взвешиваются полужирный или не полужирный, и расположение пустой ячейки, но когда я пытаюсь переместить текст, я получаю сообщение об ошибке:

TypeError: Cannot find function copyTo in object AS.

Я знаю, что моя ошибка из этой строки:

matchedCell.getValue().copyTo((emptyCellLocation,1,1,1),{contentsOnly:true}); 

Предложения?

function moveLowerValues() { 

    var s = SpreadsheetApp.getActiveSheet(); 

    // Set values for position of cells to examine 

    var upperRowStart = 1; 
    var columnStart = 1; 

    var upperRange = s.getRange(upperRowStart, columnStart, 10); 

    var upperValues = upperRange.getValues(); // Get all data in one call 
    var emptyCellLocation = 1; 

    while (upperValues[emptyCellLocation][0] != "") { 
    emptyCellLocation++; 
    } 

    var lowerRowStart = 11; 
    var lowerRange = s.getRange(lowerRowStart, columnStart, 10); 

    var lowerValues = lowerRange.getValues(); 

    var lowerWeight = lowerRange.getFontWeights(); 

    // Move and clear cells which are not bold 

    for (var rowStartOffset=0; rowStartOffset < lowerValues.length; rowStartOffset++) { 

    // If the value of the cell does not equal bold, move and then delete it 

    if (lowerWeight[rowStartOffset].toString() != "bold") { 

     var matchedRow = lowerRowStart + rowStartOffset; 
     var matchedCell = s.getRange(matchedRow, columnStart, 1, 1); 
     matchedCell.getValue().copyTo((emptyCellLocation,1,1,1),{contentsOnly:true}); 
     // emptyCellLocation++ 
     // matchedCell.clear(); 

    } 
    } 

    // lowerRange.sort(1); 

} 

ответ

1

matchedCell.getValue() возвращает значение в этой ячейке: число, строка, или такой вещи. Это значение не имеет метода copyTo. Этот метод является тем, что имеет объект Range. Вместо этого используйте matchedCell.copyTo.

Кроме того, первым аргументом copyTo также должен быть объект класса Range. Запись (emptyCellLocation,1,1,1) не создает такой объект. Используйте метод getRange.

+0

Это была моя ошибка. Благодаря! – Chef1075