Автоматически копировать данные и использовать ячейку A1 в качестве ссылки на диапазон в Google Sheet

Добрый день. Надеюсь, у вас, ребята, все хорошо.

Я новичок в Google Sheet, и мне очень нужна ваша помощь. Обычно я использовал приведенный ниже образец/строки в MS Excel для автоматического копирования формулы из ячейки C2:D2 в ячейку C3:D6, а затем преобразования ее в значения. Я также использовал ячейку A1 в качестве ссылки на диапазон, чтобы она могла копировать формулу до строки 6.

Проблема: я не знаю, как сделать то же самое в листе Google, поскольку сценарий отличается от сценария MS Excel VBA.

Эта строка ниже представляет собой пример сценария, который я использую в Excel VBA, и я не знаю, как сделать то же самое в листе Google:

Sheets("Sheet1").Select

x = Range("A1").Value

Range("C2:D2").Select
Selection.Copy

Range("C3:D" & x).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

Range("C3:D" & x).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False"

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

Стоит ли изучать 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
102
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Я считаю, что ваша цель состоит в следующем.

  • Вы хотите получить значение из ячейки «A1» в качестве номера последней строки. И вы хотите скопировать формулы «C2:D2» в «C3:D». В этом случае вы хотите скопировать формулы, используя номер последней строки, полученной из «A1», для «C3:D».
  • Вы хотите добиться этого с помощью скрипта Google Apps.

В этом случае как насчет следующего примера сценария?

Пример сценария:

Скопируйте и вставьте следующий сценарий в редактор сценариев электронной таблицы Google и задайте имя своего листа. И сохраните скрипт.

function myFunction() {
  const sheetName = "Sheet1"; // Please set your sheet name.

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  const row = sheet.getRange("A1").getValue();
  sheet.getRange("C2:D2").copyTo(sheet.getRange(`C3:D` + row), SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);
}
  • При запуске этого сценария запускается описанный выше процесс.

Ссылка:

Добрый день. Надеюсь, у тебя все хорошо. Теперь я хочу скопировать ячейку C3:D6 и затем вставить ее в «Значения». Я попробовал эту линию, но она не работает. sheet.getRange("C3:D6").copyTo(sheet.getRange(C3:D + row), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);

Poch 14.03.2024 03:09

@Poch О твоем новом вопросе Now I want to copy Cell C3:D6 and then paste it into Values. I tried this line but it is not working. sheet.getRange("C3:D6").copyTo(sheet.getRange(C3:D + row), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false), какой вопрос? Потому что, когда ваш первоначальный вопрос изменяется комментарием, другие пользователи, которые видят ваш вопрос, приходят в замешательство. Опубликовав его как новый вопрос, пользователи, включая меня, смогут подумать об этом. Я рад. Можете ли вы сотрудничать, чтобы решить ваш новый вопрос?

Tanaike 14.03.2024 03:20

Я понимаю. Извини за это.

Poch 14.03.2024 03:28

@Poch Спасибо за ответ. Это не проблема. Я хотел бы продолжать поддерживать вас.

Tanaike 14.03.2024 03:29

Двигаясь вперед, я опубликую это как вопрос, а не как комментарий. Есть ли у вас идеи, какой код мне следует использовать, чтобы скопировать ячейку C3: D6 и вставить ее как значения? sheet.getRange("C3:D6").copyTo(sheet.getRange(C3:D + row), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false)

Poch 14.03.2024 03:39

@Poch Спасибо за ответ. Когда я увидел ваш опубликованный новый вопрос, я хотел бы его проверить.

Tanaike 14.03.2024 03:42

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