Google Sheets — Как сделать взаимозависимые ячейки с разных листов одной книги?

Доброе время суток!
С подобным вопросом на Тостере уже ознакомился. Сутки гугла и незнание js не помогли адаптировать тот или другие скрипты под мои условия.
Скрипт№1(вообще не читается GS'ом)
Private Sub Worksheet_Change (ByVal Target As Range)
If Not Intersect(Target, Union([A1],[B1])) Is Nothing Then
Application.EnableEvents = False
[B1]= Target
[A1]= Target
Application.EnableEvents= True
End If
End Sub
Скрипт№2 (работает в рамках 1листа и только cells2->cells1 | нужно cells1<->cells2 )
function onEdit(e) {
var cells1 = ["A1", "C3", "A6"];
var cells2 = ["B2", "D1", "E4"];
var value = (typeof e.value == 'object' ? "" : e.value);
var sheet = e.range.getSheet();
var cell = e.range.getA1Notation();
var k = cells1.indexOf(cell);
if (k != -1) {
sheet.getRange(cells2[k]).setValue(value);
}
k = cells2.indexOf(cell);
if (k != -1) {
sheet.getRange(cells1[k]).setValue(value);
}}
Дано:
Google Таблицы - 1книга: 2листа. Постоянно добавляются новые строки

Задача:
При вводе значения в одну ячейку, копировать/дублировать это значение в ячейку другого листа и наоборот автоматически
Т.е. - 'лист1"!A:A='лист2'!A:A (Столбец А листа1 = Столбец А листа2) с возможностью редактировать значения этих ячеек
  • Вопрос задан
  • 1317 просмотров
Пригласить эксперта
Ответы на вопрос 1
@lrv
Можно написать макрос, который будет срабатывать при изменении значений в ячейках. Private Sub Worksheet_Change(ByVal Target As Range). Указываете рендж в котором надо отследить изменения и потом пишете условие попадает ли ячейка в указанный диапазон. Если попадает, загоняйте с первого листа значенияв массив, удаляйте все на втором и вставляйте из массива данные в тот же диапазон. Только не циклом, а долго работать будет. Копируйте и вставляйте через Range.
P.s. Макрос на изменения значений в ячейках вставляется в модуль листа.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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