Скрипты Google Sheets Перемещение полей ввода в пустое поле ввода - PullRequest
0 голосов
/ 18 ноября 2018

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

1) https://developers.google.com/apps-script/reference/spreadsheet/sheet

2)https://mashe.hawksey.info/2015/03/google-sheets-move-a-row-of-data-to- 
another-sheet-based-on-cell-value/

Попытка скопировать ячейку из формы приема в выходной столбец на другом листе.

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

function NewBand(){ //Triggered by button on "New"
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var target = SpreadsheetApp.getActiveSpreadsheet();

  
  var source_sheet = ss.getSheetByName('New');
  var target_sheet = target.getSheetByName('Roster');
  var source_range = source_sheet.getRange('D3');
  var target_range = target_sheet.getRange('C10');
    source_range.copyTo(target_range);
  var last_row = target_sheet.getLastRow();
  target_sheet.insertRowAfter(last_row);
  var target_range = target_sheet.getRange('C'+(last_row+1));

  var source_sheet = ss.getSheetByName('New');
  var target_sheet = target.getSheetByName('Info');
  var source_range = source_sheet.getRange('D5');
  var target_range = target_sheet.getRange('B8');
    source_range.copyTo(target_range);
  var last_row = target_sheet.getLastRow();
  target_sheet.insertRowAfter(last_row);
}

В настоящее время при запуске корректно добавляет данные в правильные столбцы, но

1) не вставляет данные в следующую ячейку.сохранение ранее вставленных данных.-Он перезаписывает предыдущую запись в настоящее время, в отличие от перемещения вниз по строке и создания новых данных.

2), когда я ее запускаю, он добавляет также кучу пустых строк.

3) еслиЕсть более простой способ сделать это, что также было бы здорово!Если кто-то может заставить меня пойти по правильному пути или получить первую форму для правильного вывода, так что я могу сделать все остальное, я буду вечно благодарен!

Если это поможет, вот очень простая версия моего проекта:https://docs.google.com/spreadsheets/d/1i192uK-a-ALim7pvL-mkty_1nh_m9aghvmrxmiiRYKs/edit?usp=sharing

Я кодировал формы ввода на листе «Новый» в соответствии с желаемыми результатами на листах «Список» и «Информация».

Я также был бы более чем счастливдать чаевые кому-то пару баксов за свое время, если у них есть paypal или apple pay

1 Ответ

0 голосов
/ 19 ноября 2018

Как насчет этой модификации?В этой модификации он извлекает значения «D3: D15» и помещает каждое значение в следующую строку последней строки листа «Ростер» и «Информация».

Модифицированный скрипт:

function NewBand() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetNew = ss.getSheetByName('New');
  var sheetRoster = ss.getSheetByName('Roster');
  var sheetInfo = ss.getSheetByName('Info');
  var values = sheetNew.getRange("D3:D15").getValues();
  var D3, D5, D7, D9, D11, D13, D14, D15;
  [D3, _, D5, _, D7, _, D9, _, D11, _, D13, D14, D15] = Array.prototype.concat.apply([], values);
  sheetRoster.appendRow([,null,D3,D7,null,null,null,null,null,D9,null,null,null,null,null,null,D11]);
  sheetInfo.appendRow([null,D5,D14,D15,null,null,null,D11]);
}

Примечание:

  • В этом сценарии предполагается, что следующая строка последней строки выглядит следующим образом.
    • В столбцах нет значений, кроме C, D, J и Q, в листе «Ростер»
    • В столбцах нет значений, кроме B, C, D и Hв листе «Инфо».

Список литературы:

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