Увеличение строкового значения Google Sheet - PullRequest
0 голосов
/ 07 мая 2018

Используя следующий код, я не могу увеличить значение в листах Google до плюс один.

function incrementCellValuesByOne() {
  // Increments the values in all the cells in the active range (i.e., selected cells).
  // Numbers increase by one, text strings get a "1" appended.
  // Cells that contain a formula are ignored.

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var activeRange = ss.getActiveRange();
  var cell, cellValue, cellFormula;

  // iterate through all cells in the active range
  for (var cellRow = 1; cellRow <= activeRange.getHeight(); cellRow++) {
    for (var cellColumn = 1; cellColumn <= activeRange.getWidth(); cellColumn++) {
      cell = activeRange.getCell(cellRow, cellColumn);
      cellFormula = cell.getFormula();

      // if not a formula, increment numbers by one, or add "1" to text strings
      // if the leftmost character is "=", it contains a formula and is ignored
      // otherwise, the cell contains a constant and is safe to increment
      // does not work correctly with cells that start with '=
      if (cellFormula[0] != "=") {
        cellValue = cell.getValue();
        cellValue =+cellValue
        cell.setValue(cellValue + 1);
      }
    }
  }
}

Например, «personalDataDOB_3» должен стать «personalDaTaDOB_4». Я ищу быстрый способ сделать это, так как сейчас мне нужно заменить значение, набрав текст.

1 Ответ

0 голосов
/ 08 мая 2018

Вы хотите изменить "personalDataDOB_3" определенной ячейки на "personalDaTaDOB_4". Если мое понимание верно, как насчет этой модификации?

Очки модификации:

  • Когда извлеченный «personalDataDOB_3» преобразуется в число с помощью cellValue =+cellValue, возвращается NaN. Таким образом, даже если был добавлен 1, результат будет NaN.
  • Если формат строк, которые вы хотите изменить, всегда "personalDataDOB_ #", как насчет разделения строки на _?

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

От:

if (cellFormula[0] != "=") {
  cellValue = cell.getValue();
  cellValue =+cellValue
  cell.setValue(cellValue + 1);
}

Кому:

if (cellFormula[0] != "=") {
  cellValue = cell.getValue();
  var temp = cellValue.split("_"); // Added
  temp[1] = Number(temp[1]) + 1; // Added
  cell.setValue(temp.join("_")); // Modified
}

Примечание:

  • Если формат строк, которые вы хотите изменить, всегда изменяется, пожалуйста, сообщите мне.

Если я неправильно понял ваш вопрос, извините.

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