Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как написать Макрос в google scripts вместо ф-ии importrange - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Как написать Макрос в google scripts вместо ф-ии importrange
Kashimirush Дата: Четверг, 15.08.2019, 14:39 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте помогите написать макрос который будет выполнять функцию importrange, и добавлять данные из одной таблиц в другую. Т.к. сама функция importrange не всегда работает корректно и обновляется всегда онлайн, что сказывается на скорости таблицы, а мне обновление достаточно раз в сутки, таблица уже достаточно большая, чтобы использовать importrange было не комфортно.
Как пример из таблицы 1:

Нужно вставлять ячейки в таблицу 2:

Вставлять данный нужно на лист 2 таблицы 2.


Работа, работа, перейди на Федота...

Сообщение отредактировал Kashimirush - Четверг, 15.08.2019, 15:06
 
Ответить
СообщениеЗдравствуйте помогите написать макрос который будет выполнять функцию importrange, и добавлять данные из одной таблиц в другую. Т.к. сама функция importrange не всегда работает корректно и обновляется всегда онлайн, что сказывается на скорости таблицы, а мне обновление достаточно раз в сутки, таблица уже достаточно большая, чтобы использовать importrange было не комфортно.
Как пример из таблицы 1:

Нужно вставлять ячейки в таблицу 2:

Вставлять данный нужно на лист 2 таблицы 2.

Автор - Kashimirush
Дата добавления - 15.08.2019 в 14:39
китин Дата: Четверг, 15.08.2019, 14:46 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7030
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Kashimirush, - Прочитайте Правила форума
- Исправьте название темы согласно п.2 Правил форума, конкретнее обозначьте проблему
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеKashimirush, - Прочитайте Правила форума
- Исправьте название темы согласно п.2 Правил форума, конкретнее обозначьте проблему
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума

Автор - китин
Дата добавления - 15.08.2019 в 14:46
Kashimirush Дата: Четверг, 15.08.2019, 15:22 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
китин, Так норм?


Работа, работа, перейди на Федота...
 
Ответить
Сообщениекитин, Так норм?

Автор - Kashimirush
Дата добавления - 15.08.2019 в 15:22
Kashimirush Дата: Пятница, 16.08.2019, 16:04 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
На английских форумах надыбал скрипт:

Но он при выполнении у меня выдает ошибку:


Работа, работа, перейди на Федота...
 
Ответить
СообщениеНа английских форумах надыбал скрипт:

Но он при выполнении у меня выдает ошибку:

Автор - Kashimirush
Дата добавления - 16.08.2019 в 16:04
Kashimirush Дата: Понедельник, 19.08.2019, 14:20 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
Нашел 2 рабочих варианта
1.Копирует все данные с одного листа из исходной таблицы в целевую, скрипт пишется и выполняется в целевой таблице (в которую нужно вставлять данные)

2.Использует библиотеку гугл скрипт (CopierT.), можно настроить диапазон копируемых ячеек. Скрипт пишется в исходной таблице, и позволяет копировать данные сразу в несколько целевых таблиц.


Оба варианта рабочие, в первом минус , не нашел как ограничить диапазон копируемых ячеек, во втором работа будет зависеть от библиотеки, если её прикроют или будут использовать для Мошеннических (если это возможно, я не программист ХЗ) целей то никто не дает гарантии.


Работа, работа, перейди на Федота...

Сообщение отредактировал Kashimirush - Понедельник, 19.08.2019, 14:20
 
Ответить
СообщениеНашел 2 рабочих варианта
1.Копирует все данные с одного листа из исходной таблицы в целевую, скрипт пишется и выполняется в целевой таблице (в которую нужно вставлять данные)

2.Использует библиотеку гугл скрипт (CopierT.), можно настроить диапазон копируемых ячеек. Скрипт пишется в исходной таблице, и позволяет копировать данные сразу в несколько целевых таблиц.


Оба варианта рабочие, в первом минус , не нашел как ограничить диапазон копируемых ячеек, во втором работа будет зависеть от библиотеки, если её прикроют или будут использовать для Мошеннических (если это возможно, я не программист ХЗ) целей то никто не дает гарантии.

Автор - Kashimirush
Дата добавления - 19.08.2019 в 14:20
Kashimirush Дата: Понедельник, 30.09.2019, 14:17 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
function Copy() {
  // Открываем доступ к таблице исходнику откуда будем копировать указываем ключ
  var sss = SpreadsheetApp.КЛЮЧТАБЛИЦЫ');
  // Указываем нужный лист из исходника
  var ss = sss.getSheetByName('ИМЯ ЛИСТА');
  // Получаем данные из указанного листа
  var SRange = ss.getRange('A2:J'+ ss.getLastRow().toString());
  // Определяем диапазон копируемых данных
  var A1Range = SRange.getA1Notation();
  // Определяем данные из указанного диапазона
  var SData = SRange.getValues();
  // Указываем ключ текущей таблицы куда нужно копировать данные
  var sheet = SpreadsheetApp.getActive();
   // Указываем целевой лист куда вставлять данные
  var ts = sheet.getSheetByName('ИМЯЛИСТА');
  // Чистим страницу перед вставкой данных
  ts.clear({contentsOnly: true});
  // Вставляем нужные данные
  ts.getRange(A1Range).setValues(SData);
};
[/vba]
не нашел как ограничить диапазон копируемых ячеек

Нашел)


Работа, работа, перейди на Федота...

Сообщение отредактировал Kashimirush - Понедельник, 30.09.2019, 14:23
 
Ответить
Сообщение[vba]
Код
function Copy() {
  // Открываем доступ к таблице исходнику откуда будем копировать указываем ключ
  var sss = SpreadsheetApp.КЛЮЧТАБЛИЦЫ');
  // Указываем нужный лист из исходника
  var ss = sss.getSheetByName('ИМЯ ЛИСТА');
  // Получаем данные из указанного листа
  var SRange = ss.getRange('A2:J'+ ss.getLastRow().toString());
  // Определяем диапазон копируемых данных
  var A1Range = SRange.getA1Notation();
  // Определяем данные из указанного диапазона
  var SData = SRange.getValues();
  // Указываем ключ текущей таблицы куда нужно копировать данные
  var sheet = SpreadsheetApp.getActive();
   // Указываем целевой лист куда вставлять данные
  var ts = sheet.getSheetByName('ИМЯЛИСТА');
  // Чистим страницу перед вставкой данных
  ts.clear({contentsOnly: true});
  // Вставляем нужные данные
  ts.getRange(A1Range).setValues(SData);
};
[/vba]
не нашел как ограничить диапазон копируемых ячеек

Нашел)

Автор - Kashimirush
Дата добавления - 30.09.2019 в 14:17
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!