@ToXa04

Как объединить столбцы в выделенном диапазоне Google Script?

Задача состоит в том, чтобы при выделении произвольного диапазона ячеек и запуске скрипта происходило вертикальное объединение ячеек в столбцах, кроме одного, заданного в условии.
Вот мой код:
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var myRange = sheet.getActiveRange();
  var end_str = myRange.getLastRow();
  var str0 = end_str - myRange.getNumRows() + 1;
  var end_col = myRange.getLastColumn();
  var col0 = end_col - myRange.getNumColumns() + 1;
  Logger.log(end_str)
  Logger.log(str0)
  Logger.log(end_col)
  Logger.log(col0)
  for (var i = col0; i <= end_col; i++) {
    var numcol = i;
    Logger.log(numcol)
    if (numcol != 4) {
      sheet.getRange(str0, numcol, end_str, numcol).mergeVertically();
    } else {
      continue
    }
  }
}

Т.е. при выделении диапазона 5х5 должны получиться 1-3 и 5 столбцы объединены, а 4, как и изначально - состоять из 5ти строк. Подскажите, что не так?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
@ToXa04 Автор вопроса
function order_merge_str() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var myRange = sheet.getActiveRange();
myRange.setBorder(true, true, true, true, null, null, '#000000', SpreadsheetApp.BorderStyle.SOLID);
var end_str = myRange.getLastRow();
var num_str = myRange.getNumRows()
var str0 = end_str - num_str + 1;
var end_col = myRange.getLastColumn();
var col0 = end_col - myRange.getNumColumns() + 1;
Logger.log(end_str)
Logger.log(str0)
Logger.log(end_col)
Logger.log(col0)
for (var i = col0; i <= end_col; i++) {
if (i != 4) {
sheet.getRange(str0, i,num_str).activate()
.mergeVertically();
}
}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы