Google Sheets Пользовательская функция получает буквальные значения вместо объектов диапазона (постоянная проблема)Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Google Sheets Пользовательская функция получает буквальные значения вместо объектов диапазона (постоянная проблема)

Сообщение Anonymous »

Я испытываю чрезвычайно разочаровывающую и постоянную проблему с пользовательской функцией сценария Google Apps в моем листе Google. Несмотря на обширное устранение неполадок, моя пользовательская функция (предназначенная для суммирования ячеек по цвету фона) последовательно получает буквальные ячейки (например, «1268.74,, 263.98, ...») в качестве аргументов вместо фактических объектов диапазона (например, C33: C45). Это предотвращает правильное выполнение скрипта. Когда я набираю формулу в листе, вспомогательная подъема инструментов правильно отображает диапазоны (диапазон, ...). Однако после выполнения журналы скриптов приложений показывают:
пропуск неверного или пустого диапазона аргумента в Индексе 0: 1268,74,, 263,98,100, 48, 231,86,123,0,0,0,0
(и аналогичные строки для всех аргументов), с номерами --- окончательная сумма: 0 -----. Диапазоны (например, C33: C45, C48: C54, ...), которые не имеют цвета заполнения (белый/прозрачный фон).
Формула в листе:
= Sum_uncolored_cells (C33: C45, C48: C54, C57: C64, C67: C70, C73: C90, C93: C97, C100: C108, C111: C116) < /p>
script -код (код. /> javascript < /p>

Код: Выделить всё

/**
* Sums the values in multiple ranges that do NOT have a custom fill color.
* It considers both truly transparent backgrounds ("") and default white backgrounds ("#ffffff") as "no fill".
*
* @param {...GoogleAppsScript.Spreadsheet.Range} ranges A list of ranges to sum (e.g., C1:C10, D1:D10).
* @return {Number} The sum of cells without a custom background color across all provided ranges.
* @customfunction
*/
function SUM_UNCOLORED_CELLS(...ranges) {
var sum = 0;
Logger.log('--- Starting SUM_UNCOLORED_CELLS execution ---');

for (var k = 0; k < ranges.length; k++) {
var currentRange = ranges[k];
if (currentRange && typeof currentRange.getValues === 'function') {
// This block should execute, but based on logs, currentRange is not a Range object
Logger.log('Processing range: ' + currentRange.getA1Notation()); // This line is never reached
var values = currentRange.getValues();
var backgrounds = currentRange.getBackgrounds();
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[0].length; j++) {
var cellValue = values[i][j];
var cellBackground = backgrounds[i][j];
if ((cellBackground === '' || cellBackground === '#ffffff') && typeof cellValue === 'number' && !isNaN(cellValue)) {
sum += cellValue;
}
}
}
} else {
// THIS IS THE PROBLEM SEEN IN MY LOGS:
Logger.log('Skipping invalid or empty range argument at index ' + k + ': '   + currentRange);
}
}
return sum;
}

То, что я пробовал (все безуспешно):
обеспечить точный, авторизованный, авторизованный, и использует правильный JSDOC. /> Удал и повторно въехал формулу с нуля. «Пропустить недопустимый аргумент» ошибка в журналах. < /P>
подтвердил, что скрипт правильно связан с конкретным листом Google. Проблема глубокого кэширования), которая предотвращает передачу ссылок на диапазон в качестве объектов диапазона на пользовательские функции, даже если подпись функции, по -видимому, распознается по подсказке инструментов листа. Спасибо! » Поведение: < /p>
Формула Helper Sutpip в Google правильно показывает, что функция ожидает (диапазон, ...) аргументы. < /p>
Тем не менее, журналы выполнения сценария приложений последовательно показывают, что функция - это литеральные значения (например, «1268.74, 263.98, ...») вместо фактических объектов с диапазоном от поэтапника. /P> p> p> p> p> p> p> < /p> p> p> p> < /p> p> p> p> < /p> p> < /p> p> p> preman < /p> p> < /p> p> preman (p> p> preman (p> p> p> preman (p> p> p> pript script, 263.98, ... ») Чтобы пропустить неверный или пустой аргумент в диапазоне в журналах и окончательную сумму 0.
выполнил стандартный браузер/листовой устранение неисправностей:
Очищенное кеш браузера и файлы cookie (все время).
Обновленная страница Google Sheat (F5/ctrl+F5). Вновь открыл вкладку и браузер Google. = Sum_uncolored_cells (c33: c40)), что также не удалось с той же ошибкой, передаваемой аргументами.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ge-objects
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»