Я новичок в этом деле, но это здорово! Я работал с Excel и Vba, и я очень рад видеть весь этот новый мир.
Вот моя проблема: В Excel у меня есть файл с «шаблоном». Этот шаблон связан с данными, которые меняются в зависимости от значения ячейки. Например, в ячейке K26
есть номер ключа; если его значение равно 1
, шаблон покажет вам информацию, связанную с 1
. Если это 2
, он покажет вам информацию, связанную с 2
и так далее. Есть список чисел, которые я хочу сгенерировать, поэтому, когда я запускаю код, шаблон добавит новый лист, скопирует его текущие значения и вставит их в новый лист, переименует лист из «SheetX» в значение ячейки K26
и затем переходите к следующему ряду.
Вопрос : Я хочу сделать то же самое в драйверах, но не знаю, с чего начать.
Мой шаблон листа называется «Generador», а текущий реестр находится в ячейке K26
(это также будет имя листа). Диапазон, который я хочу скопировать, составляет от A1
до I67
. Если это возможно, я хотел бы иметь новую рабочую книгу, и в этой рабочей книге создать все листы списка. Список может быть где угодно на листе «Список».
Заранее спасибо.
EDIT:
Пока мой код:
на основе это
function createEmployeeSheets() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
// Get the range of cells that store employee data.
var ssLista = ss.getSheetByName("Lista");
var rgEData = ssLista.getRange(2,1);
var eData=rgEData.getValue();//número de registros
var employeeDataRange = ssLista.getRange(2,1,eData,1);//Nombres de hoja empezando en columna 1 desde fila 2
var employeeObjects = employeeDataRange.getValues();
var template = ss.getSheetByName('Generador');
for (var i=0; i < employeeObjects.length; i++) {
// Put the sheet you want to create in a variable
var sheet = ss.getSheetByName(employeeObjects[i]);
// Check if the sheet you want to create already exists. If so,
// log this and loop back. If not, create the new sheet.
if (sheet) {
Logger.log("Sheet " + employeeObjects[i] + "already exists");
} else {
template.getRange("K3").offset(0,0).setValue(employeeObjects[i]);
template.copyTo(ss).setName(employeeObjects[i]);
}
}
return;
i = 0;
}
Мне удалось сгенерировать каждый лист, изменить K3 значения шаблона и переименовать его. Мне не хватает двух вещей:
Я все еще получаю сообщение об ошибке: когда код начинает генерировать листы, он включается и не останавливается в последней строке листа «Список». Например, у меня есть 3 строки со значениями, и когда цикл переходит к 4, он показывает строку ошибки, потому что не может назвать листы ни с чем (ноль).
Другое дело, что я хочу создавать листы в новой книге, а не в текущей. Есть ли способ, что эти листы могут быть созданы в новом? Учитывая, что информация связана с формулами, поэтому это должны быть только значения.
Спасибо.