2016-10-12 8 views
0

Я сделал сценарий:Google сценариев: возвращаемое значение вместо формулы

function getWN8() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    var startRow = 11; 
    var queryString = Math.random(); 
    var dataRange = sheet.getRange(startRow, 3) 
    var data = dataRange.getValues(); 
    var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues() 
    var input, cellFunction, range, row; 


    for (var n=startRow-1; n < values.length;++n){ 
    input = values[n][0]; 
    row = values[n]; 
    cellFunction = '=INDEX(IMPORTHTML("http://en.wot-life.comeu/player/' + input + '", "table", 1),16,2)'; 

    for (var i = 0; i < row.length; ++i) { 
     range = sheet.getRange((n+1), 2); 
     range.setValue(cellFunction); 
    } 
    } 
} 

Этот скрипт считывает значения из первого столбца, значение вставки из первого столбца HTTP ссылки и вывода выталкивается в клетки в 2-й колонке. Но если я смотрю в листе, я показываю числовое значение в ячейке, но он обрабатывается как формула. Поэтому я не могу установить условное форматирование.

Так что все, что мне нужно сделать, - это передать значение ячейке вместо формулы. Как это можно сделать? Я не очень разбираюсь в написании сценариев или программировании.

Спасибо за любую помощь

Иво

ответ

0

Вы можете использовать setFormula(formula) или setFormulaR1C1(formula).

setFormula(formula)

  • обновляет формулу для этого диапазона. Данная формула должна быть в обозначении A1.
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheets()[0]; 

var cell = sheet.getRange("B5"); 
cell.setFormula("=SUM(B3:B4)"); 

setFormulaR1C1(formula)

  • Updates формула для этого диапазона. Данная формула должна быть в обозначении R1C1.
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheets()[0]; 

var cell = sheet.getRange("B5"); 
// This sets the formula to be the sum of the 3 rows above B5 
cell.setFormulaR1C1("=SUM(R[-3]C[0]:R[-1]C[0])"); 

Надеется, что это помогает.

+0

doc link: https://docs.google.com/spreadsheets/d/1LVlRhOQRkGNIB8-fcZzzK4AneQ5PYlse49EkY9Pd3HE/edit?usp=sharing ned для получения суммы B11: B111, но нет никаких сумм :( –

0

Для включения формулы в значение вы должны что-то добавить к вашей последней итерации как:

var val = range.getValue; 
range.setValue(val); 

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