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

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 (VBA) para copiar o mover hojas dentro de un libro o entre libros. Esto es particularmente útil si desea mover o copiar varias hojas, o si desea realizar copias múltiples 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 con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. 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á copiando.

Excel 2001 para Macintosh tuvo un problema cuando el código VBA que copia las hojas se encuentra en el mismo libro como las hojas que se está 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:
286266Excel se bloquea cuando intenta copiar la hoja de cálculo en el mismo libro
:

Código de ejemplo para copiar hojas

Copiar una hoja específica en el 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 específica en el 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
				

Copiar las horas ActiveSheet múltiples

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 una vez todas las hojas de un libro

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 hoja Active 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 hoja Active 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 de 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 sobre el método Copy, desde el Editor de Visual Basic, haga clic en Ayuda de Visual Basic de Microsoft Search en el menú Ayuda , escriba el método de copia , haga clic en Buscar y, a continuación, haga clic para ver "método de copia." Se muestran tres temas. Elegir el que se aplica a hojas de cálculo.

Para obtener más información sobre el método de mover, desde el Editor de Visual Basic, haga clic en Ayuda de Visual Basic de Microsoft Search en el menú Ayuda , escriba el método move , haga clic en Buscar y, a continuación, haga clic para ver "Mover" método. Se muestran tres temas. Elegir el que se aplica a hojas de cálculo.

Excel 2001 para Macintosh

Para obtener más información sobre el método Copy, desde el Editor de Visual Basic, haga clic en el Ayudante, escriba el método de copia , haga clic en Buscar y, a continuación, haga clic para ver "método de copiar (Microsoft Excel VBA)."

Para obtener más información sobre el método de mover, desde el Editor de Visual Basic, haga clic en el Ayudante, escriba el método move , haga clic en Buscar y, a continuación, haga clic para ver "mover método (Microsoft Excel VBA)."

Para obtener información adicional acerca de problemas con copiar 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:
286266XL2001: Excel se bloquea al intentar copiar hoja en el mismo libro

Microsoft Excel 98 Macintosh Edition

Para obtener más información acerca del método Copy, desde el Editor de Visual Basic, haga clic en el Ayudante de Office, el método de copia de tipo, haga clic en Buscar y haga clic para ver el "método de copiar (Excel 97)."

Para obtener más información sobre el método de mover, desde el Editor de Visual Basic, haga clic en el Ayudante, escriba el método move , haga clic en Buscar y, a continuación, haga clic para ver "método Move (Excel 97)."

Propiedades

Id. de artículo: 288402 - Última revisión: miércoles, 31 de enero de 2007 - Versión: 5.4
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: 
kbmt kbinfo 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