Cómo copiar o mover las hojas mediante código de VBA de Excel para Mac

Seleccione idioma Seleccione idioma
Id. de artículo: 288402 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Puede utilizar Microsoft Visual Basic para Aplicaciones de código (VBA) para copiar o mover las hojas de un libro o entre libros. Esto es especialmente útil si desea mover o copiar hojas, o si desea realizar varias copias de una hoja.

Este artículo proporciona ejemplos de código VBA para realizar estas tareas.

Más información

Microsoft proporciona ejemplos de programación unicamente con fines ilustrativos, sin ninguna garantía tanto expresa como implícita. Esto incluye las garantías implícitas de comerciabilidad o idoneidad para un fin determinado, pero sin limitarse a ellas. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos. Nota En Microsoft Excel 2001 para Macintosh sin Microsoft Office 2001 para Mac Service Release 1, debe colocar el código en un libro independiente de las hojas que se están copiando.

Excel 2001 para Macintosh tuvo un problema cuando el código de VBA que copia las hojas en el mismo libro que las hojas que se están copiando.

Este problema se resuelve con Service Release 1 para Microsoft Office 2001 para Mac. Para obtener información adicional acerca de este problema en Excel 2001 para Mac, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
286266 Excel se bloquea cuando intenta copiar la hoja de cálculo en el mismo libro
:

Código de ejemplo para copiar hojas de cálculo

Copiar una hoja determinada del libro activo

Sub Copier1()
    'Replace "Sheet1" with the name of the sheet to be copied.
    ActiveWorkbook.Sheets("Sheet1").Copy _
       after:=ActiveWorkbook.Sheets("Sheet1")
End Sub
				

Copiar una hoja determinada del libro activo varias veces


Sub Copier2()
    Dim x As Integer
    
    x = InputBox("Enter number of times to copy Sheet1")
    For numtimes = 1 To x
        'Loop by using x as the index number to make x number copies.
        'Replace "Sheet1" with the name of the sheet to be copied.
        ActiveWorkbook.Sheets("Sheet1").Copy _
           After:=ActiveWorkbook.Sheets("Sheet1")
    Next
End Sub
				

Copia la hoja activa varias veces

Sub Copier3()
   Dim x As Integer
   
   x = InputBox("Enter number of times to copy active sheet")
   For numtimes = 1 To x
      'Loop by using x as the index number to make x number copies.
      ActiveWorkbook.ActiveSheet.Copy _
         Before:=ActiveWorkbook.Sheets("Sheet1")
         'Put copies in front of Sheet1.
         'Replace "Sheet1" with sheet name that you want.
   Next
End Sub
				

Copiar todas las hojas en un libro una vez

Sub Copier4()
   Dim x As Integer

   For x = 1 To ActiveWorkbook.Sheets.Count
      'Loop through each of the sheets in the workbook
      'by using x as the sheet index number.
      ActiveWorkbook.Sheets(x).Copy _
         After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
         'Puts all copies after the last existing sheet.
   Next
End Sub
				

Código de ejemplo para mover hojas de cálculo

Mover la hoja activa a una nueva posición en el libro

Sub Mover1()
    ActiveSheet.Move _
       After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
       'Moves active sheet to end of active workbook.
End Sub
				

Mover la hoja activa a otro libro

Sub Mover2()
    ActiveSheet.Move Before:=Workbooks("Test.xls").Sheets(1)
    'Moves active sheet to beginning of named workbook.
    'Replace Test.xls with the full name of the target workbook you want.
End Sub
				

Mover varias hojas en ActiveWorkbook a otro libro

Sub Mover3()
   Dim BkName As String
   Dim NumSht As Integer
   Dim BegSht As Integer

   'Starts with second sheet - replace with index number of starting sheet.
   BegSht = 2
   'Moves two sheets - replace with number of sheets to move.
   NumSht = 2
   BkName = ActiveWorkbook.Name
    
    For x = 1 To NumSht
      'Moves second sheet in source to front of designated workbook.
      Workbooks(BkName).Sheets(BegSht).Move _
         Before:=Workbooks("Test.xls").Sheets(1)
         'In each loop, the next sheet in line becomes indexed as number 2.
      'Replace Test.xls with the full name of the target workbook you want.
    Next
End Sub
				

Referencias

Microsoft Excel X para Mac y versiones posteriores

Para obtener más información acerca del método de copia, desde el Editor de Visual Basic, haga clic en Ayuda de búsqueda de Microsoft Visual Basic en el menú Ayuda , escriba método Copy, haga clic en Buscary, a continuación, haga clic para ver "Método de copia". Se muestran tres temas. Elija la que se aplica a hojas de cálculo.

Para obtener más información acerca del método de mover, desde el Editor de Visual Basic, haga clic en Ayuda de búsqueda de Microsoft Visual Basic en el menú Ayuda , escriba método Move, haga clic en Buscary, a continuación, haga clic para ver "Método Move". Se muestran tres temas. Elija la que se aplica a hojas de cálculo.

Excel 2001 para Macintosh

Para obtener más información acerca del método de copia, desde el Editor de Visual Basic, haga clic en el Ayudante de Office, escriba método Copy, haga clic en Buscary, a continuación, haga clic para ver "Método de copia (MS Excel VBA)".

Para obtener más información sobre el método Move, desde el Editor de Visual Basic, haga clic en el Ayudante de Office, escriba método Move, haga clic en Buscary, a continuación, haga clic para ver "Método Move (MS Excel VBA)".

Para obtener información adicional acerca de los problemas con la copia de las hojas de cálculo que contienen código en el mismo libro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
286266 XL2001: Excel se bloquea cuando intenta copiar la hoja de cálculo en el mismo libro

Microsoft Excel 98 Macintosh Edition

Para obtener más información acerca del método de copia, desde el Editor de Visual Basic, haga clic en el Ayudante de Office, escriba método Copy, haga clic en Buscary, a continuación, haga clic para ver "Método de copia (Excel 97)".

Para obtener más información acerca del método de mover, desde el Editor de Visual Basic, haga clic en el Ayudante, tipo de oficina método Move, haga clic en Buscary, a continuación, haga clic para ver "Método Move (Excel 97)".

Propiedades

Id. de artículo: 288402 - Última revisión: sábado, 23 de noviembre de 2013 - Versión: 7.0
La información de este artículo se refiere a:
  • Microsoft Excel 2004 for Mac
  • Microsoft Excel X para Macintosh
  • Microsoft Excel 2001 para Macintosh
  • Microsoft Excel 98 para Macintosh
Palabras clave: 
dftsdahomeportal kbinfo kbmt KB288402 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 288402

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com