Как вставить значение объекта в формулу?

#javascript #string #google-apps-script

#javascript #строка #google-приложения-скрипт

Вопрос:

В моем коде я храню список имен в массиве, называемом data . Поэтому позже я могу вспомнить эти имена в цикле, указав ссылку, такую как data[1], чтобы получить первое имя.

Приведенная ниже строка кода РАБОТАЕТ нормально

 cell.setFormula("=query('Open Details'!$A$1:$Z$231,"SELECT A WHERE V contains 'John Doe'",0)");
 

Предположим, что data[1] преобразуется в имя John Doe. Как мне использовать данные [1] в приведенной выше формуле?

Ответ №1:

Попробуйте это:

 cell.setFormula("=query('Open Details'!$A$1:$Z$231,"SELECT A WHERE V contains '"   data[1]   "'",0)");
 

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

 cell.setFormula("=query('Open Details'!$A$1:$Z$231,"SELECT A WHERE V contains Names!$A$1",0)");
 

Комментарии:

1. Первый вариант сработал! Для второго, хотя я понимаю это концептуально, я не знаю, смогу ли я изменить ссылку «Names! $ A $ 1» на «Names! $ A $ 2» в цикле, используя счетчик циклов.

Ответ №2:

Вы можете использовать обратную галочку, чтобы создать литерал шаблона и вставить переменную в строку.

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

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

 var data = ['Jane Doe', 'John Doe'];

var query = `=query('Open Details'!$A$1:$Z$231,'SELECT A WHERE V contains '${data[1]}''',0)`;

console.log(query);