TransWikia.com

Como guardar nuevo archivo con Visual Basic en Excel

Stack Overflow en español Asked by Kevincs7 on November 26, 2020

Actualmenten estoy tomando los valores de una hoja, en bloque de 200 registros. Pero lo que busco es guardar cada rango de registros en un archivo nuevo y en una ruta especificada.

Worksheets(Index + 1).Select
Dim r1 As Range, r2 As Range, j As Range, num As Integer, num2 As Integer, total_reg As Integer, val As Integer
va = 1
total_reg = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
num = 202
Set r1 = ActiveSheet.Range("A1:N1")
Do While num < total_reg + 1
   num2 = num + 199
   Set r2 = ActiveSheet.Range("A" & num & ":N" & num2)
   Set j = Union(r1, r2)
   j.Copy
   Workbooks.Add
   ActiveSheet.Paste
   Windows("IMPORTAR-EXPORTAR.xlsm").Activate
   Worksheets(Index + 1).Select
   Application.CutCopyMode = False
   ActiveSheet.Range("G11").Select
   num = num + 200
   ActiveWorkbook.SaveAs Filename:="D:nuevoBook" & val & ".xlsx"
   val = val + 1
Loop

introducir la descripción de la imagen aquí

pero me sale un error. donde podria editar?

One Answer

tu línea de código Windows("IMPORTAR-EXPORTAR.xlsm").Activate hace que el libro activo (ActiveWorkbook) sea un archivo XLSM, es decir, un libro habilitado para macros.

luego haces ActiveWorkbook.SaveAs Filename:="D:nuevoBook" & val & ".xlsx"

Y te da error porque en tiempo de ejecución no puedes guardar un XLSM que está ejecutando una macro como XLSX.

Además, un consejo, val es una palabra reservada del sistema.

Función Val

Te recomiendo que como nombre de parámetro/variable, utilices otra cosa como MiVal, EsteVal, _Val_ o algo así. Usar como variables palabras reservadas del sistema puede producir resultados inesperados y corrupciones de archivo a largo plazo.

respecto a tu código, creo que primero deberías salvar donde pegas lo que copias, y luego ya activar tu libro.

Algo así:

'
'
'
'resto de tu código
'
'
'
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:="D:nuevoBook" & val & ".xlsx"
Windows("IMPORTAR-EXPORTAR.xlsm").Activate

'
'
'
'resto de tu código
'
'
'

Answered by Elier Sánchez E-Infantes on November 26, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP