2014-02-20 2 views
0

Я искал скрипты и прочее для поиска, но похоже, что google api слишком сильно изменилось, или я немой и не знаю, как выполнять старые скрипты и заставить их работать.Скрипт Google, игнорируя for loop - Электронная таблица

Я продолжаю получать эти ошибки Ошибка анализа ... Yahoew это помогает многим. Не зная, какую линию. Поэтому я сделал свой собственный.

function amountOfColors(color, range){ 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var orgColor = ss.getRange(color).getBackground(); 
var range = ss.getRange(range); 

var x = 0; 
Logger.log("I was here before the loop."); 
for (var i; i < range.getNumRows(); i++) { 
Logger.log("Entered Row loop"); 
for (var j; j < range.getNumColumns(); j++) { 
    Logger.log("Entered Columns loop"); 
    var curCell = range.getCell(i, j); 
    Logger.log("curCell is : " & curCell); 
    if(curCell.getBackground() == orgColor) { 
    Logger.log("curCell color is : " & curCell.getBackground()); 
    x++; 
    } 
} 
} 
Logger.log("END"); 
return x; 
}; 

Как вы можете видеть, я в значительной степени заставлял его регистрироваться для каждой вещи. Однако это то, что он возвращает в файле журнала:

[14-02-20 04:00:53:445 CET] I was here before the loop. 
[14-02-20 04:00:53:445 CET] END 

Даже не касаясь моей петли?

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

Надеюсь, кто-то может просветить меня на этом. Я попытался установить скрипты из галереи сценариев, которые делают подобное, но также возвращают ошибки.

Вот картина установки:

http://b.imgdrp.com/PCoT.PNG - Я понимаю, что он говорит B33: B35, но даже с не работает.

+0

ok после фиксации i и j для be = 1 Я могу пройти через петли, также я отредактировал инструкцию таблицы как «= amountOfColors (« A35 »;« A33: A35 »), но теперь, похоже, пройдите через оператор my if. даже попытался установить orgColor в currentColor его проверку и попытаться передать инструкцию if таким образом, но все равно не имеет значения. – user3330867

+0

Нашел ответ, но я не могу добавить его, прежде чем прошло 8 часов, из-за отсутствия 10 повторений. – user3330867

+0

Молодцы. Рад, что вы нашли ответ. Код - это скрипт google-apps. Кроме того, это скорее вопрос проверки кода, поэтому он не подходит для stackoverflow. Похоже, вы делаете Хороший прогресс. – eddyparkinson

ответ

0

Добавление собственного ответа в случае, если у кого-то была бы аналогичная проблема.

function amountOfColors(color, range){ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0] 
    var orgColor = sheet.getRange(color).getBackground(); 
    var range = sheet.getRange(range); 

    var x = 0; 

    for (var i = 1; i <= range.getNumRows(); i++) { 
    for (var j = 1; j <= range.getNumColumns(); j++) { 
     var curCellColor = range.getCell(i,j).getBackground(); 
     if(curCellColor == orgColor) 
     x++; 
    } 
    } 
    return x; 
}; 

Кроме этого я изменил способ я назвал свою функцию:

вместо:

=amountOfColors("A35", "A33:A35") 

вам нужно использовать:

=amountOfColors("A35"; "A33:A35") 

Как вы можете видеть полу -colon вместо запятой.

Приношу свои извинения за размещение и исправление его настолько быстро, похоже, что все, что мне было нужно, это 1 дополнительный час, чтобы получить коварство. По крайней мере, надеюсь, что кто-то может что-то выиграть от этого. Если у вас есть вопросы по поводу кода, не стесняйтесь добавлять комментарии, я попытаюсь объяснить. С наилучшими пожеланиями Qvintus.

Смежные вопросы