Как исправить код (выберите первый столбец строки, введите формулу, скопируйте и вставьте в качестве значений) - PullRequest
0 голосов
/ 07 января 2019

Я изучил кодирование в google sheet через запись макросов. Мой код не работает, когда я играю. Вот как это должно работать. Запись в столбце E - дата. Когда я играю свой макрос, он добавляет 1 месяц к дате в столбце E и вводит текущую дату в столбец F.

Моя активная ячейка может быть где угодно. Я записал так:

  1. Я перемещаю активную ячейку в первый столбец строки
  2. Я сместил активную ячейку на 5 ячейки вправо
  3. создать формулу =edate(R[0]C[-1],1) скопировать значения и вставить в качестве значений в столбец E
  4. сделать столбец F активной ячейкой, ввести формулу ввода =now() скопировать значения и вставить как значения

Я уже два часа гуглю и не вижу ответа

function Test() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.PREVIOUS).activate();
  spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.PREVIOUS).activate();
  spreadsheet.getCurrentCell().offset(0, 5).activate();
  spreadsheet.getCurrentCell().setFormulaR1C1('=edate(R[0]C[-1],1)');
  spreadsheet.getCurrentCell().offset(0, -1).activate();
  spreadsheet.getCurrentCell().offset(0, 1).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getCurrentCell().offset(0, 1).activate();
  spreadsheet.getCurrentCell().setFormulaR1C1('=now()');
  spreadsheet.getActiveRange().copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);

enter image description here

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