Я хочу взять несколько ячеек, и какая-либо ячейка не ЛОЖЬ Я хочу, чтобы эта ячейка была извлечена и перемещена в другой столбец на другом листе

Я работаю над формой действия. Есть действия, которые можно отмечать флажками. Если флажки не отмечены, они оставляют ячейку со значением ЛОЖЬ. Я хочу, чтобы любая ячейка (B6, B7, E7) была скопирована в другую ячейку, если ячейка не читает FALSE.

Я пытаюсь сделать это в редакторе сценариев листов Google с помощью оператора if.

var submit_type_range = submit_sheet.getRange('B6:B7');
  var types =submit_type_range.getValues();

  if (types != 'FALSE')
   var type = types 
   return type 



  var type_submitted = log_sheet.getRange(lastRow_log+1,3)
  type_submitted.setValue(type)

Я знаю, что это не сработает, но я ожидал, что по крайней мере type извлечет все ячейки, которые не отображают FALSE.


person thecrappycoder123    schedule 11.09.2019    source источник
comment
types - двумерный массив. submit_sheet не определен. log_sheet не определен. lastRow_log не определен. Перед написанием собственного скрипта вам следует попробовать несколько руководств.   -  person Cooper    schedule 11.09.2019


Ответы (1)


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

Код сначала прочитает значения ячеек B6, B7 и E7. Поскольку запись .getValues() A1 работает только для непрерывных ячеек, мы собираемся объединить данные E7 с другими ячейками.

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

Наконец, мы записываем данные этих ячеек в последнюю пустую строку. Поскольку мы не поняли, в какой столбец последней пустой строки вы хотите ввести данные, мы решили записать каждую ячейку в столбец, который соответствует индексу исходного чтения (например, B6 ???? Столбец A, B7 ???? Столбец B и E7 ???? Столбец C).

В качестве дополнения мы сделали последний цикл, который удаляет элементы массива types, которые имеют значение false. Мы добавили это из-за вашей последней фразы.

function falseRemover() {
  var spreadsheet = SpreadsheetApp.openById('{SPREADSHEET ID}').getSheetByName(
    'Sheet1');
  var types = spreadsheet.getRange('B6:B7').getValues().concat(spreadsheet
    .getRange('E7').getValues());
  var lastRow = spreadsheet.getLastRow() + 1;

  var columnIterator = 0;
  for (var cell in types) {
    columnIterator++;
    if (types[cell] != 'false') {
      spreadsheet.getRange(lastRow, columnIterator).setValue(types[cell]);
    }
  }

  for (var cell in types) {
    if (types[cell] == 'false') {
      types[cell].pop();
    }
  }
}

Мы надеемся, что этот пример кода будет вам полезен, но не стесняйтесь обращаться за дополнительной помощью, если она вам понадобится.

person Jacques-Guzel Heron    schedule 12.09.2019