Как получить и установить номер столбца на основе значения в исходной электронной таблице - PullRequest
0 голосов
/ 15 апреля 2019

Попытка скопировать диапазон (L2: L9) в другую электронную таблицу на основе выбора для проверки данных (ID #) в конкретной ячейке (G11) в исходной электронной таблице.

Все идентификаторы в алфавитно-цифровом порядке расположены в целевой таблице вдоль строки 5, поэтому все, что мне нужно, это получить номер столбца, который соответствует выбору, сделанному в поле проверки данных.

До того, как мне пришлось преобразовать ID # в буквенно-цифровые значения, у меня просто были числовые значения, и скрипт работал нормально. Теперь у меня проблемы с преобразованием скрипта для работы с этой модификацией.

function Submit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet(); // ss = source spreadsheet
  var source_sheet = ss.getActiveSheet(); 
  if (source_sheet.getName() == "Pre-Season CC") {
  var SRange = source_sheet.getRange('L2:L9');
  var A1Range = SRange.getA1Notation();
  var SData = SRange.getValues();
  var target = SpreadsheetApp.openById('1MpKdxFyBrVQT3EumePQvtCZpgzcDW5xlYe4B1DKZCA8');
  var target_sheet = target.getSheetByName('Pre-Season');
  var idNumber = source_sheet.getRange('Pre-Season CC!G11').getValue();
  for (var i = 0; i < idNumber.length; i++) {
    for (var j = 0; j < idNumber.length;j++){
    if (target_sheet[4][j] == idNumber){
      Logger.log((j+1))
      return j+1;
  target_sheet.getRange('B6:B13').offset(0,valueA1 = ss.getRange('Pre-Season!G11').getValue(idNumber)+1).setValues(SData);
      }
    }
  }
} 

В этот момент мне нужно скопировать данные из исходной электронной таблицы в целевую электронную таблицу в назначенном ей столбце в соответствии с ID #. Пожалуйста, помогите!

1 Ответ

0 голосов
/ 16 апреля 2019

Попробуйте код ниже.

function Submit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet(); // ss = source spreadsheet
  var source_sheet = ss.getActiveSheet();
  if (source_sheet.getName() == 'Pre-Season CC') {
    // source sheet items
    var SData = source_sheet.getRange('L2:L9').getValues();
    var idNumber = source_sheet.getRange('Pre-Season CC!G11').getValue();

    // target sheet items
    var targetSS = SpreadsheetApp.openById('1MpKdxFyBrVQT3EumePQvtCZpgzcDW5xlYe4B1DKZCA8');
    var target_sheet = targetSS.getSheetByName('Pre-Season');
    // 5 = row where IDs are
    var TData = target_sheet.getRange(5, 1, 1, target_sheet.getLastColumn()).getValues()[0];

    // column index of #ID in target sheet
    var colIndex = TData.indexOf(idNumber) + 1;

    // write data in that column, rows from 6 to 13
    target_sheet.getRange(6, colIndex, SData.length, 1).setValues(SData);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...