Intervalo de copia de Excel VBA a outra folla (8 xeitos máis sinxelos)

  • Comparte Isto
Hugh West

Sempre que o necesites, podes copiar un intervalo dunha folla a outra folla ou libro de traballo. Hai diferentes tipos de copiar e pegar. Despois deste artigo, coñecerás diferentes formas de usar o intervalo de copias de Excel VBA noutra folla.

Para que a explicación sexa animada, vou usar un conxunto de datos de mostra que representa a información persoal de persoas concretas. . O conxunto de datos ten 4 columnas. Estas columnas son o Nome, Apelidos, Nome completo, e Correo electrónico .

Descargar o libro de traballo para practicar

Intervalo de copia VBA noutra folla.xlsm

8 xeitos de copiar intervalo de Excel VBA noutra folla

1. Copia un intervalo a outra folla con formato

Cando queira Copiar un intervalo dunha folla a outra folla con Formato pode simplemente facelo usando o VBA .

Aquí, vou copiar un intervalo de folla de conxunto de datos á folla WithFormat .

Imos comezar o procedemento,

Primeiro, abra a pestana Desenvolvedor >> seleccione Visual Basic

Tamén pode usar o teclado ALT + F11 para abrir o VBA editor.

A continuación, abrirase unha nova xanela chamada Microsoft Visual Basic para aplicacións.

A partir de aí, abra Inserir >> seleccione Módulo .

Abrirase un Módulo e escriba o seguinte código no campo aberto. >> seleccione Ver macros

➤ Aparecerá un cadro de diálogo .

Agora, desde o Nome da macro seleccione o Copy_Range_BelowLastCell_AnotherSheets tamén seleccione o libro de traballo dentro de Macros in .

Finalmente, Executar a Macro seleccionada.

Por iso, Copiará o intervalo seleccionado e Pegarao dende a última fila doutra folla .

8. VBA Copia un intervalo na última fila doutro libro

Se queres Copiar un intervalo ata a última fila doutra folla de traballo, tamén pode usar o VBA .

Aquí, vou copiar un intervalo de Dataset2 folla a Folla1 de Libro2 pero dende a primeira cela non en branco.

Para iniciar o procedemento,

Primeiro, abra a pestana Desenvolvedor >> seleccione Visual Basic

Tamén pode usar o teclado ALT + F11 para abrir o editor VBA .

A continuación, abrirase unha nova xanela de Microsoft Visual Basic for Applications.

A partir de aí, abra Inserir >> seleccione Módulo .

Abrirase un Módulo e escriba o seguinte código no Módulo aberto.

1343

Aquí, declarei o Sub procedemento Copy_Range_BelowLastCell_To_Another_Workbook onde wsCopy e wsDestination son Tipo de folla de traballo , lCopyLastRow e lDestLastRow son longos tipo.

Primeiro, úsase Establecer para establecer variables para a folla a copiar e a folla de destino.

A continuación, utilizou o método Fila para atopar a última fila baseándose nos datos da columna A no intervalo de copia.

De novo, utilizou o método Fila para atopar a primeira fila en branco en función dos datos da columna A no intervalo de destino tamén se utilizou Desfase para baixar unha propiedade.

Finalmente, Copiouse os datos da folla Dataset2 do libro de traballo Excel VBA Copy Range noutra folla.xlsm ao destino Sheet1 do libro de traballo Book2.xlsx .

Agora, Garda o código e volve á folla de traballo.

A continuación, abra a pestana Ver >> de Macros >> seleccione Ver macros

➤ Aparecerá un cadro de diálogo .

Agora, no Nome da macro seleccione o Copy_Range_BelowLastCell_To_Another_Workbook tamén seleccione o libro de traballo dentro de Macros in .

Finalmente, Executar a Macro seleccionada.

Por iso, Copiará o intervalo seleccionado desde a folla existente ata a última fila doutro libro de traballo.

Sección de prácticas

Proporcionei unha folla de prácticas no libro de traballo para practicar estas formas explicadas do intervalo de copias VBA de Excel a outra folla.

Conclusión

Neste artigo, expliquei 8 tipos diferentes de formas fáciles e rápidas de VBA de Excel copia o intervalo noutra folla. Estas diferentes formas axudaranche a copiar un intervalo dunha folla a outra e tamén dunha folla a outra caderno de traballo. Por último, pero non menos importante, se tes algún tipo de suxestión, ideas e comentarios, non dubides en comentar a continuación.

Módulo.
7507

Aquí declarei o Subprocedemento Copiar_Range_conFormato_Aotra_Folla

Tomei o intervalo B1:E10 para copiar da folla existente ao nome da folla ConFormato .

Aquí usei o Copiar método para copiar o intervalo seleccionado, Copiar o método copia calquera intervalo con Formato .

Finalmente, Garda o código e volve á folla de traballo .

A continuación, abra a pestana Ver >> de Macros >> seleccione Ver macros

➤ Aparecerá unha caixa de diálogo .

Agora, desde o Nome da macro seleccione o Copiar_rango_con formato_a outra_folla tamén seleccione o libro de traballo dentro de Macros en .

Finalmente, Executar a Macro seleccionada.

Por iso, Copiará o intervalo seleccionado con Formato na nova folla que seleccionei ( ConFormato) .

2. VBA Copiar un intervalo noutra folla sen formato

Tamén é é posible Copiar un intervalo noutra folla sen Formato mediante o VBA .

Aquí, vou Copiar un intervalo desde folla de conxunto de datos ata folla WithoutFormat.

Imos comezar o procedemento,

Agora, abra a Desenvolvedor pestana >> seleccione Visual Basic ( use ALT + F11)

A continuación, abrirase Microsoft Visual Basic para aplicacións.

A continuación, abra Inserir >> seleccione Módulo .

Abrirase un Módulo e escriba o seguinte código no Módulo aberto.

2874

Aquí, declarei o Sub procedemento Copy_Range_WithoutFormat_Toanother_Sheet

Tomei o intervalo B1:E10 para copiar da folla existente ao nome da folla WithoutFormat .

Aquí usei o método Copiar para copiar o intervalo seleccionado pero tamén mencionou Pegar:=xlPasteValues ​​ no método PasteSpecial de xeito que só pegará Valores do intervalo seleccionado, non o formato.

Finalmente. , Garde o código e volve á folla de traballo.

A continuación, abra a pestana Ver >> de Macros >> seleccione Ver macros

➤ Aparecerá un cadro de diálogo .

Agora, dende o Nome da macro seleccione o Copiar_Range_SenFormato_A outra_Folla e tamén seleccione o libro de traballo dentro de Macros en .

Finalmente, Executar a Macro seleccionada.

Así, Copiará o intervalo seleccionado só con Valores sen Formato .

3. Copia un intervalo noutra folla con formato e ancho de columna

Ás veces pode querer Copia calquera intervalo seleccionado tal e como está, para iso podes Copiar un intervalo con Formato e Ancho da columna .

Aquí, Vou Copiar un intervalo de folla de conxunto de datos a Formato e amp; Ancho da columna folla.

Para ver o procedemento para realizar a tarefa mediante VBA ,

Primeiro, abra a pestana Desenvolvedor >> seleccione Visual Basic

Tamén pode usar o teclado ALT + F11 para abrir o editor VBA .

A continuación, abrirase unha nova xanela de Microsoft Visual Basic para aplicacións.

Alí, abra Inserir >> seleccione Módulo .

Abrirase un Módulo e escriba o seguinte código no Módulo aberto.

6583

Aquí, declarei o Sub procedemento Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth

Tomei o intervalo B1:E10 para copiar desde a folla existente ao nome da folla de destino Formato e amp; Ancho da columna .

Aquí usei o método Copiar para copiar o intervalo seleccionado. Tamén usei o método PasteSpecial onde mencionei Paste:=xlPasteColumnWidths para que pegue o intervalo seleccionado xunto con Formato e Ancho da columna .

Finalmente, Garda o código e volve á folla de traballo.

A continuación, abra a pestana Ver >> de Macros >> seleccione Ver macros

➤ Aparecerá un cadro de diálogo .

Agora, desde o Nome da macro seleccione o Copiar_Range_a_Outra_Folla_con_FormatAndColumnWidth e tamén seleccione o libro de traballo dentro de Macros en .

Finalmente, Executar o seleccionado Macro .

Como resultado, copiará o intervalo seleccionado con Formato e Ancho da columna .

4. VBA Copiar un intervalo noutra folla con fórmula

No caso de que teña algunha fórmula no seu conxunto de datos que queira copiar. Sen preocupacións! Pode copiar o intervalo que contén Fórmula noutra folla mantendo a fórmula intacta.

Aquí, vou Copiar un intervalo da folla Conxunto de datos a Con Fórmula folla

Imos comezar o procedemento,

Para comezar, abra a pestana Desenvolvedor >> seleccione Visual Basic ( tamén pode usar o ALT + F11 teclado)

A continuación, abrirá Microsoft Visual Basic para aplicacións.

A partir de aí, abra Inserir >> seleccione Módulo .

Abrirase un Módulo e escriba o seguinte código no Módulo aberto.

2020

Aquí, declarei o Sub procedemento Copy_Range_withFormula_ToAnother_Sheet

Tomei o intervalo B1:E10 para copiar da folla existente ao nome da folla de destino WithFormula .

Aquí usei o método Copiar para copiar o intervalo seleccionado. Tamén usei o método PasteSpecial onde mencionei Paste:=xlPasteFormulas para que leva as Formulas xunto co intervalo seleccionado.

Finalmente. , Garde o código e volve á folla de traballo.

A continuación, abra a Ver pestana >> de Macros >> seleccione Ver macros

➤ Aparecerá unha caixa de diálogo .

Agora, desde o Nome da macro seleccione o Copiar_Range_withFormula_ToAnother_Sheet tamén seleccione o libro de traballo dentro de Macros en .

Finalmente, Executar a Macro seleccionada.

Así, Copiará todos os intervalos de celas seleccionados con Fórmulas .

Lecturas similares:

  • Como usar a compensación do intervalo VBA (11 formas)
  • VBA para cada cela do intervalo en Excel (3 métodos)
  • Como usar o obxecto de intervalo de VBA en Excel (5 propiedades)

5. Copia un intervalo con axuste automático a outra folla

Mentres copias un intervalo noutra folla tamén podes utilizar o método Axuste automático no VBA para Axuste automático o intervalo copiado na folla nova.

Aquí, vou Copiar un intervalo de Conxunto de datos folla a Axuste automático folla

Imos comezar o procedemento,

Primeiro, abra a pestana Desenvolvedor >> seleccione Visual Basic

Tamén pode usar o teclado ALT + F11 para abrir o editor VBA .

A continuación, abrirase unha xanela de Microsoft Visual Basic para aplicacións.

A continuación, abra Inserir > ;> seleccione Módulo .

Abrirase un Módulo e escriba o seguinte código no campo aberto. Módulo .

2729

Aquí declarei o Subprocedemento Copy_Range_withFormat_AutoFit

En primeiro lugar, seleccionei a folla de traballo Conxunto de datos . Despois tomei o intervalo B1:E10 para copiar da folla existente á folla de destino chamada Axuste automático .

Aquí usei o Copiar método para copiar o intervalo seleccionado e o método Axuste automático axustará automaticamente as columnas indicadas B:E .

Finalmente, Garda o código e vaia volver á folla de traballo.

A continuación, abra a pestana Ver >> de Macros >> seleccione Ver macros

➤ Aparecerá un cadro de diálogo .

Agora, no Nome da macro seleccione o Copiar_Range_conFormat_AutoFit tamén seleccione o libro de traballo dentro de Macros en .

Finalmente, Executar a Macro seleccionada.

Por iso, Copiará o intervalo seleccionado nunha nova folla e tamén Axuste automaticamente as columnas.

6. VBA Copiar un intervalo noutro libro

Se queres tamén podes Copiar un intervalo dunha folla a outra folla dun libro de traballo diferente.

Aquí, vou copiar un intervalo de folla de conxunto de datos a Folla1 de Libro1 libro de traballo.

Imos comezar o procedemento,

Primeiro, abra a pestana Desenvolvedor >> selecciona Visual Basic (y tamén podes usar o teclado ALT + F11 )

Entón, abrirá Microsoft VisualBásico para aplicacións.

A continuación, abra Inserir >> seleccione Módulo .

Abrirase un Módulo e escriba o seguinte código no Módulo aberto.

3799

Aquí, declarei o Sub procedemento Copy_Range_WithFormat_Toanother_WorkBook

Tomei o intervalo B3:E10 do nome da folla Conxunto de datos para copiar da folla existente ao novo nome do libro Libro1 e nome da folla Folla1 .

Aquí usei o método Copiar para copiar o intervalo seleccionado no novo libro.

Por último, Garda o código e volve á folla de traballo.

A continuación, abra a pestana Ver >> de Macros >> seleccione Ver macros

➤ Aparecerá un cadro de diálogo .

Agora, desde o Nome da macro seleccione o Copy_Range_WithFormat_Toanother_WorkBook tamén seleccione o libro de traballo dentro de Macros in .

Finalmente, Executar a Macro seleccionada.

Agora, Copiará o intervalo seleccionado da folla Conxunto de datos noutro libro de traballo.

7. Copia un intervalo na última fila doutra folla

En calquera caso, se queres Copiar un intervalo noutra folla desde unha determinada cela ou a última cela podes facelo usando o VBA .

Antes de entrar no procedemento, quero dicirche que, levei dúas follas novas que consisten en Nome completo, correo electrónico, e Enderezo .

Observemos primeiro a folla Dataset2 .

Aquí está a folla Debaixo da última cela .

Aquí, vou copiar un intervalo de Conxunto de datos2 a Debaixo da última cela pero dende a primeira cela non en branco.

Para comezar, abra a pestana Desenvolvedor >> seleccione Visual Basic

A continuación, abrirase Microsoft Visual Basic para aplicacións.

Entón, abra Inserir >> seleccione Módulo .

Abrirase un Módulo e escriba o seguinte código no Módulo aberto.

2505

Aquí, declarei o Sub procedemento Copy_Range_BelowLastCell_AnotherSheets

Primeiro, seleccionei a folla Conxunto de datos2 e, a continuación, utilizou o método Fila para contar a Última fila e mantivo a fila contada en lr .

Entón tomouse o intervalo A2:C & lr para copiar da folla existente ao nome da folla de destino Debaixo da última cela .

De novo, utilizou o método Fila para contar o Último Fila doutra folla chamada Debaixo da última cela e mantivo a fila contada en lrAnotherSheet .

Aquí usei o método Copiar para copiar o intervalo seleccionado e o método Axuste automático axustará automaticamente as columnas indicadas A:C .

Finalmente, Garda o código e volve atrás á folla de traballo.

A continuación, abra a pestana Ver >> desde Macros

Hugh West é un adestrador e analista de Excel altamente experimentado con máis de 10 anos de experiencia na industria. É Licenciado en Contabilidade e Finanzas e Máster en Administración de Empresas. Hugh ten unha paixón polo ensino e desenvolveu un enfoque docente único que é fácil de seguir e comprender. O seu coñecemento experto de Excel axudou a miles de estudantes e profesionais de todo o mundo a mellorar as súas habilidades e a destacar nas súas carreiras. A través do seu blog, Hugh comparte os seus coñecementos co mundo, ofrecendo titoriais de Excel gratuítos e formación en liña para axudar ás persoas e ás empresas a alcanzar todo o seu potencial.