Great code but wondered how I can paste values rather than just paste?
Thanks :)
Por ejemplo, tiene una hoja de trabajo grande y ahora solo desea copiar algunos rangos seleccionados y distribuirlos a otras hojas de trabajo. Pero cuando seleccione los rangos múltiples y haga clic en copiar, aparecerá un cuadro de diálogo que le recordará "Ese comando no se puede usar en selecciones múltiples". En esta condición, ¿cómo se copian rápidamente varios rangos seleccionados? Aquí tienes algunos trucos para que resuelvas esta tarea.
Con la ayuda de los portapapeles, puede pegar todos los rangos seleccionados en otro rango u hoja de trabajo a la vez. Haz lo siguiente:
1. Hacer clic Inicio > en el objeto portapapeles grupo para mostrar el portapapeles Pan.. Ver captura de pantalla:
2. Y luego copie los rangos seleccionados que necesita uno por uno. Al mismo tiempo, los rangos copiados han aparecido en el portapapeles Pan. ver captura de pantalla arriba:
3. Seleccione la primera celda del rango de destino donde pegará todos los rangos copiados y haga clic en Pegar todo botón en el portapapeles Cristal.
Y luego, todos los rangos copiados se han pegado en el rango de destino especificado.
Puede resultar tedioso combinar docenas de hojas de diferentes libros de trabajo en una sola hoja. Pero con Kutools para Excel Combinar (hojas de trabajo y libros de trabajo) utilidad, puede hacerlo con solo varios clics.
¡Prueba gratuita de todas las funciones de 30 días!
Kutools for Excel - Incluye más de 300 útiles herramientas para Excel. Prueba gratuita de todas las funciones durante 30 días, ¡no se requiere tarjeta de crédito! CONSÍGUELO AHORA
Con el código VBA, también puede copiar varios rangos seleccionados y pegarlos en cualquier otra hoja de trabajo.
1. Sosteniendo el Ctrl y seleccione varios rangos no adyacentes que desee utilizar.
2. prensa otro + F11 llaves al mismo tiempo para abrir el Microsoft Visual Basic para aplicaciones ventana, haga clic recuadro > Móduloe ingrese el siguiente código en el módulo:
Opción Subcopia explícitaMultipleSelection () Dim SelAreas () As Range Dim PasteRange As Range Dim UpperLeft As Range Dim NumAreas As Integer, i As Integer Dim TopRow As Long, LeftCol As Integer Dim RowOffset As Long, ColOffset As Integer Dim NonEmptyCellCount As Integer 'Exit si no se selecciona un rango If TypeName (Selection) <> "Range" Then MsgBox "Seleccione el rango a copiar. Se permite una selección múltiple". Exit Sub End If 'Almacenar las áreas como objetos Range separados NumAreas = Selection.Areas.Count ReDim SelAreas (1 to NumAreas) For i = 1 To NumAreas Set SelAreas (i) = Selection.Areas (i) Next' Determine la parte superior izquierda celda en la selección múltiple TopRow = ActiveSheet.Rows.Count LeftCol = ActiveSheet.Columns.Count For i = 1 To NumAreas If SelAreas (i) .Row <TopRow Then TopRow = SelAreas (i) .Row If SelAreas (i) .Column <LeftCol Then LeftCol = SelAreas (i) .Column Next Set UpperLeft = Cells (TopRow, LeftCol) 'Obtener la dirección de pegado en caso de error Reanudar siguiente Establecer PasteRange = Application.InputBox _ (Prompt: = "Especifique la celda superior izquierda para pegar rango: ", _ Título: =" Copiar selección múltiple ", _ Tipo: = 8) En caso de error Ir a 0 'Salir si se cancela Si TypeName (PasteRange) <>" Rango "Entonces salir de Sub' Asegúrese de que solo la celda superior izquierda esté usado Establecer PasteRange = PasteRange.Range ("A1") 'Verificar el rango de pegado para los datos existentes NonEmptyCellCount = 0 For i = 1 To NumAreas RowOffset = SelAreas (i) .Row - TopRow ColOffset = Sel Areas (i) .Column - LeftCol NonEmptyCellCount = NonEmptyCellCount + _ Application.CountA (Range (PasteRange.Offset (RowOffset, ColOffset), _ PasteRange.Offset (RowOffset + SelAreas (i) .Rows.Count - 1, _ ColreasOffset + SelA (i) .Columns.Count - 1))) Siguiente i 'Si el rango de pegado no está vacío, advertir al usuario If NonEmptyCellCount <> 0 Then _ If MsgBox ("Overwrite existing data?", vbQuestion + vbYesNo, _ "Copy Multiple Selection ") <> vbYes Luego Salir de Sub 'Copie y pegue cada área para i = 1 To NumAreas RowOffset = SelAreas (i) .Row - TopRow ColOffset = SelAreas (i) .Column - LeftCol SelAreas (i) .Copy PasteRange.Offset ( RowOffset, ColOffset) Siguiente i End Sub
3. Luego haz clic en Corral botón para ejecutar el código.
4. Y ahora especifique una celda para pegar los rangos en la apertura Copiar selección múltiple cuadro de diálogo y haga clic en el OK botón. Ver captura de pantalla:
El Copiar varios rangos utilidad de Kutools for Excel puede ayudarlo a copiar rápidamente múltiples rangos de la hoja de trabajo activa. Por favor haga lo siguiente:
Kutools for Excel - Incluye más de 300 útiles herramientas para Excel. Prueba gratuita de todas las funciones durante 30 días, ¡no se requiere tarjeta de crédito! CONSÍGUELO AHORA
1. Seleccione los rangos que desea usar uno por uno sin mantener presionado el Ctrl clave y luego haga clic en Kutools > Copiar rangos. Ver captura de pantalla:
2. En la Copiar varios rangos cuadro de diálogo, comprobar Todos opción de Pegado especial sección, y haga clic en Ok button. Ver captura de pantalla arriba:
<b>Nota:</b> Si desea mantener la altura de la fila y el ancho de la columna como los rangos originales, verifique Incluyendo la altura de la fila opción y Incluyendo el ancho de la columna en el cuadro de diálogo Copiar varios rangos.
3. Y especifique una celda para pegar los rangos en el siguiente cuadro de aviso, y haga clic en el OK botão.
Y ahora todos los rangos seleccionados se pegarán en la celda especificada con la misma altura de fila y ancho de columna que las selecciones originales.
Haga clic aquí para obtener más información sobre la utilidad Copiar rangos múltiples
Kutools for Excel - Incluye más de 300 útiles herramientas para Excel. Prueba gratuita de todas las funciones durante 30 días, ¡no se requiere tarjeta de crédito! CONSÍGUELO AHORA
Kutools para Excel proporciona otro Combinar hojas de trabajo utilidad para copiar múltiples rangos de muchas hojas de trabajo o muchos libros de trabajo fácilmente en Excel. Por favor haga lo siguiente:
Kutools for Excel - Incluye más de 300 útiles herramientas para Excel. Prueba gratuita de todas las funciones durante 30 días, ¡no se requiere tarjeta de crédito! CONSÍGUELO AHORA
1. Hacer clic Kutools Plus > Combinar.
2. En el cuadro de diálogo Abrir Combine Worksheets - Step 1 of 3, marque la casilla Combine varias hojas de trabajo del libro de trabajo en una sola hoja de trabajo opción, y haga clic en Eventos Proximos botão.
3. En el cuadro de diálogo Combinar hojas de trabajo - Paso 2 de 3, haga lo siguiente:
(1) Seleccione el libro de trabajo en el Lista de libros de trabajo sección, y luego haga clic en el Buscar botón detrás de cada hoja de trabajo para especificar el rango de cada hoja de trabajo;
(2) Haga clic en el Añadir para agregar otros libros de trabajo de los que copiará rangos, y luego repita arriba (1) para especificar rangos en el libro de trabajo agregado.
(3) Haga clic en el Acabar botão.
Kutools for Excel - Incluye más de 300 útiles herramientas para Excel. Prueba gratuita de todas las funciones durante 30 días, ¡no se requiere tarjeta de crédito! CONSÍGUELO AHORA
4. Luego aparece un cuadro de diálogo Kutools para excel y solicita guardar el escenario de combinación. Haga clic en el Sí botón o No botón que necesite.
Hasta ahora, todos los rangos especificados de varias hojas de trabajo o libros de trabajo se han copiado y pegado en un nuevo libro de trabajo.