Ver Mensaje Individual
  #2  
Antiguo 19-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No estoy seguro de haber entendido pero te pongo una idea.

Tengo una situación similar en la que debo elaborar listas de alumnos de uno o más grupos. Cada grupo debe ir en una hoja distinta pero todas los hojas son iguales en cuanto al formato.

En lugar de crear una hoja oculta lo que hago es crear la primera hoja a partir de una plantilla (como le haces tú, segun me parece) y lleno los datos.

Cuando tengo que agregar una nueva hoja utilizo algo así:

Código:
Hoja := Libro.ActiveSheet as _WORKSHEET;
Hoja.Copy(null, Hoja, 0);

Hoja := Libro.ActiveSheet as _WORKSHEET;
Hoja.Name := 'Hoja' + IntToStr(Libro.Sheets.Count);

LimpiarHoja(Hoja);
Es decir, copio la hoja activa, asigno a la copia un nombre secuencial y finalmente limpio la hoja, es decir, borro sus datos. De esta manera el formato queda igual que la plantilla original pero con celdas vacías.

En el método LimpiarHoja simplemente borro las celdas que me interesen:

Hoja.Cells.Item[Ren, Col] := '';

preservando las que sean comunes como títulos y demás.

En cuanto a lo de que se cuelga quizá te sirva poner

Excel.AutoQuit en true.

// Saludos
Responder Con Cita