Адаптируемый сбор данных в электронных таблицах - PullRequest
0 голосов
/ 05 января 2019

У меня есть программа-скрипт Google, которая получает информацию из электронной таблицы Google. Переменные получают свои данные из определенных ячеек. Мой вопрос заключается в том, как я могу сделать свою кодировку адаптируемой, чтобы при добавлении или вычитании строк или столбцов код знал, где искать нужную информацию? т.е. адреса электронной почты (var AthEmailData) и имена (AthPresData)

Вот пример,

//Athens Variables
  var dataA = sheet.getRange(10, 2);
  var totalA = dataA.getValue();
  var AthPresData = sheet.getRange(3, 8)
  var AthPres = AthPresData.getValue();
  var AthEmailData = sheet.getRange(3, 9);
  var AthEmail = AthEmailData.getValue();

1 Ответ

0 голосов
/ 06 января 2019
  • Вы хотите получить значения AthPres и AthEmail, даже если диапазоны sheet.getRange(3, 8) (H3) и sheet.getRange(3, 9) (I3) изменены.

Если мое понимание верно, как насчет использования NamedRange? В случае использования NamedRange, даже если диапазон, который задан как именованный диапазон, изменяется, диапазон NamedRange автоматически изменяется, и значение можно получить с помощью NamedRange. Я думаю, что может быть несколько ответов для вашей ситуации. Поэтому, пожалуйста, подумайте об этом как об одном из них.

Поток выглядит следующим образом.

  1. Установите для «H3» и «I3» значение NamedRange.
    • "H3" и "I3" используются из вашего вопроса.
  2. Получить значения с помощью NamedRange.

Пример сценария:

1. Установить NamedRange

Сначала установите NamedRange, используя этот скрипт. Конечно, вы также можете установить "H3: I3" как один NamedRange.

function myFunction1() {
  var s = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = s.getActiveSheet();
  var AthPresData = sheet.getRange(3, 8); // H3
  var AthEmailData = sheet.getRange(3, 9); // I3
  s.setNamedRange("AthPresData", AthPresData); // Set "H3" to NamedRange as "AthEmailData"
  s.setNamedRange("AthEmailData", AthEmailData); // Set "I3" to NamedRange as "AthEmailData"
}

2. Получить значения

После установки NamedRange вы можете получить значения, используя NamedRange, используя этот скрипт. Даже если диапазон варьируется от «H3» и «I3» до других, вы можете получить значения, используя NamedRange.

function myFunction2() {
  var s = SpreadsheetApp.getActiveSpreadsheet();
  var names = ["AthPresData", "AthEmailData"];
  var namedRanges = s.getNamedRanges();
  for (var i = 0; i < namedRanges.length; i++) {
    for (var j = 0; j < names.length; j++) {
      if (namedRanges[i].getName() == names[j]) {
        var value = namedRanges[i].getRange().getValue();
        Logger.log("%s, %s", names[j], value)
      }
    }
  }
}

Примечание:

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

Ссылки

Если я неправильно понял ваш вопрос, пожалуйста, скажите мне. Я хотел бы изменить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...