Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

Поиск и добавление строк или столбцов в таблицу

Автор Максим Пожарский, 07.11.2024, 09:40:06

« назад - далее »

Максим Пожарский

Всем привет! Помогите, пожалуйста, модифицировать скрипт :pray:

function onOpen() {
SpreadsheetApp.getUi()                  //доступ к интерфейсу Google Sheets
.createMenu('Button')            //меню
.addItem('Line', 'myFunction_Button1')  //кнопка
.addToUi();
};
function myFunction_Button1() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getActiveSheet();
 var range = sheet.getActiveRange();
 var row = range.getRow();
 var col = range.getColumn();
 sheet.insertRowAfter(row);
 Logger.log(row);
 Logger.log(col);
}

Данный скрипт добавляет новую (пустую) строку по нажатию кнопки Line из меню от выделенной ячейки. А как сделать так, чтобы скрипт добавлял не просто пустую строку, а строку с переносом данных из предыдущей строки, то есть, формулы, если есть ?

Заранее благодарю за помощь!

Дмитрий Щербаков(The_Prist)

Не стал переписывать весь код - добавил только копирование. Но не совсем понятно какого размера таблица(сколько столбцов) и как именно и с какого столбца планируется копировать. Поэтому в коде копируется только три столбца выделенной строки(начиная с 1-го):
function myFunction_Button1() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();
    var range = sheet.getActiveRange();
    var row = range.getRow();
    var col = range.getColumn();
    var rng = sheet.getRange(row,1,1,3)
    sheet.insertRowAfter(row);
    var rng_next = sheet.getRange(row+1,1);
    rng.copyTo(rng_next);
    //Logger.log(row);
    //Logger.log(col);
}
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Максим Пожарский

Дмитрий, спасибо большое! Таблица достаточна большая, это график сотрудников. Просто при выходе новых сотрудников каждый раз приходится добавлять строку вручную и формулы в соседние ячейки вносить. Вообще столбцов я посчитал - их 65, а копировать планируется с первого, ну то есть, со столбца А. До столбца BN.

Я так понимаю, что в скрипте, необходимо изменить значение 3 на 65, верно?

Дмитрий Щербаков(The_Prist)

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Максим Пожарский


Яндекс.Метрика Рейтинг@Mail.ru