Получить значение выбранной строки c Col с помощью скрипта (Google Sheets) - PullRequest
0 голосов
/ 14 февраля 2020

Я пытался заставить этот работать безуспешно. Мне нужно получить TaskNumber в первом столбце строки, в которой я нахожусь, и перенести его на лист назначения, чтобы я мог обновить его там. У меня есть следующее, которое я настраиваю для достижения своей цели, но я думаю, что натолкнулся на стены ограничения:

function jump() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var TaskNumberSheet = ss.getSheetByName('To-Do List');
  var TaskNoRow = TaskNumberSheet.getActiveCell();
  var TaskNoCol = TaskNoRow.getColumn() == 1
  var TaskNo = TaskNoCol.getValue;
  var sheet = ss.getSheetByName('Updates');
  //var Tasks = ss.getSheetByName("To Do List").getActiveRange(Tasks.getColum(1)).getValue();

  var values = sheet.getRange("B:B").getValues();
  var maxIndex = values.reduce(function(maxIndex, row, index) {
    return row[0] === "" ? maxIndex : index;
  }, 0);
  sheet.setActiveRange(sheet.getRange(maxIndex + 2,2)).setValue(TaskNo);
}

Любая помощь приветствуется.

Приветствия, A

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

Если я вас правильно понял, вы хотите:

  1. Получить значение в столбце A из текущей активной строки (на листе To-Do List).
  2. Найти первое пустая ячейка в столбце B (на листе Updates) (начните смотреть на строку № 8).
  3. Скопируйте значение, полученное на шаге 1, в ячейку, полученную на шаге 2.
  4. Установите ячейку, полученную на шаге 2, в качестве активной ячейки.

Если это так, вы можете сделать следующее:

function jump() {
  var ss = SpreadsheetApp.getActive();
  // Step 1:
  var TaskNumberSheet = ss.getSheetByName('To-Do List');
  var TaskNoRow = TaskNumberSheet.getActiveCell().getRow();
  var TaskNoCol = 1;
  var TaskNo = TaskNumberSheet.getRange(TaskNoRow, TaskNoCol).getValue();
  // Step 2:
  var sheet = ss.getSheetByName('Updates');
  var firstRow = 8;
  var column = 2;
  var numRows = sheet.getLastRow() - firstRow + 1;
  var values = sheet.getRange(firstRow, column, numRows).getValues().map(function(value) { 
    return value[0] 
  });
  var i = 0;
  for (i; i < values.length; i++) {
    if (values[i] === "") break;
  }
  var targetRange = sheet.getRange(i + firstRow, column);
  targetRange.setValue(TaskNo); // Step 3
  sheet.setActiveRange(targetRange); // Step 4
}
0 голосов
/ 15 февраля 2020
function jump() {
  var TargetRow=?;//Fillin target row
  var TargetCol=?;//Fillin target column
  var ss=SpreadsheetApp.getActive();
  var TaskNumberSheet=ss.getSheetByName('To-Do List');
  var TaskNoRow=TaskNumberSheet.getActiveCell().getRow();//Getting row from active cell
  var TaskNoCol=1
  var TaskNo=TaskNumberSheet.getRange(TaskNoRow,TaskNoCol).getValue();
  ss.getSheetByName('Updates').getRange(targetRow,targetCol).setValue(TaskNo);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...