Проверьте, пуст ли диапазон, и скопируйте данные из диапазона

как я могу пройти только в пустую ячейку, а не всю ячейку

этот скрипт записывает все ячейки в C в то же значение, что и B, но мне просто нужно записать только пустую ячейку со значением B.

может кто-нибудь найти ошибку в этой функции????

function fill() {
  var tss = SpreadsheetApp.getActiveSpreadsheet();
  var values = tss.getRange("data!C:C").getValues();

  for(i=0; i<values.length; i++) {
    var value = values[i][0];

    if (value == "") {

      var rangeA = tss.getSheetByName("data").getRange(i+1,2);
      var rangeB = tss.getSheetByName("data").getRange(i+1,3);
      var copypaste = tss.getSheetByName("data");

      if (!rangeA.isBlank()) {
        copypaste.getRange("B2:B").copyTo(copypaste.getRange("C2:C"),{contentsOnly:true})
      }
    }
  }
}
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
58
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вставлять только в пустые ячейки

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

function fill() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("<your-sheet-id>");
  var range = sheet.getRange("C1:C" + sheet.getLastRow()); //Get populated cells in column C
  var valuesC = range.getValues();
  var valuesB = sheet.getRange("B1:B" + sheet.getLastRow()).getValues();

  for (var i = 0; i < valuesC.length; i++) {
    if (valuesC[i][0] === "") {
      valuesC[i][0] = valuesB[i][0]; //Assign value of column B to column C only if corresponding cell in column C is empty
    }
  }

  range.setValues(valuesC); //Updates values on column C with the modified values
}

Этот скрипт копирует значения из столбца B в столбец C только там, где столбец C пуст. Он напрямую обновляет значения в столбце C вместо использования copyTo.

Не стесняйтесь оставлять комментарии к предложенному выше ответу.

4thAnd1 16.08.2024 17:54

привет, спасибо за помощь, все работает идеально

John Kater 16.08.2024 18:11

Привет. Могу ли я узнать, почему мне проголосовали против, чтобы я мог улучшиться в следующий раз?

4thAnd1 16.08.2024 19:02

«Ошибка» возникает в следующей части

copypaste.getRange("B2:B").copyTo(copypaste.getRange("C2:C"),{contentsOnly:true})

Вместо конкретной ячейки для копирования появляется B2:B.

Заменять

copypaste.getRange("B2:B")

к

rangeA

Стоит отметить, что пункт назначения следует изменить на.

От

copypaste.getRange("C2:C")

к

rangeB

Стоит отметить, что скрипт можно оптимизировать, переместив

var copypaste = tss.getSheetByName("data");

над утверждением for.

спасибо за помощь, у меня оба скрипта работают хорошо

теперь у меня есть еще одна проблема: скрипт копирует временную метку в прошлое

как я могу добавить плюс 5 часов ко времени копирования из ячейки

формат даты 31.01.2024 13:02:34

Добро пожаловать в Stackoverflow. Пожалуйста, опубликуйте это как еще один вопрос, поскольку каждое сообщение должно содержать только конкретную проблему. Если у вас есть дополнительные вопросы или дополнительный вопрос, я предлагаю опубликовать его как еще один вопрос.

Babanana 19.08.2024 11:36

Другие вопросы по теме