Excel - Copie los datos al lado de una celda y péguelos a continuación
Problema
Tengo los datos dispuestos de la siguiente manera:
celular Un | B | C ------------------------------------------------- --- 1 | Hola | Hola | Mañana 2 | Ayuda | Por favor | 3 | Gracias | Nos vemos Adiós
Necesito hacer estos datos para convertirse en este formato.
celular Un | B | C ------------------------------------------------- - 1 | Hola | Hola | Mañana 2 | | Mañana | ---------------------------------------------- 3 | Ayuda | Por favor | ---------------------------------------------- 4 | Gracias | Nos vemos Adios 5 | | Adios ----------------------------------------------
Me doy cuenta de que algunas condiciones deben tener en cuenta:
Para comprobar si C1 contiene datos o no,
- 1) en caso afirmativo, copie los datos en la celda B2 (una celda relativamente a la izquierda y debajo de C1)
Luego subraya continuamente debajo de la celda B2
- 2) si no, el subrayado y continuar con la siguiente fila
- 3) Continuar hasta la última celda que contiene datos.
Solución
- Primero copia los datos en sheet2.
- A continuación, intente la macro "prueba"
Subprueba () Dim j As Integer, k As Integer Worksheets ("sheet1"). Active j = Range ("A1"). End (xlDown) .Row For k = j To 1 Step -1 If Cells (k, " C ")" "Entonces, si k = 1 Entonces, las celdas (k + 1, " A "). EntireRow. Insertar celdas (k, " c "). Cortar las celdas (k + 1, " B ") Las celdas (k + 2, "A"). EntireRow.FormulaArray = "'-----------------" Exit Sub End If Cells (k, "A"). EntireRow.Insert Cells (k + 1, "C". Células cortadas (k + 2, "B") Células (k + 3, "A"). EntireRow.FormulaArray = "'--------------- - "Otras celdas (k, " A "). EntireRow.Insert Cells (k + 2, " a "). EntireRow.FormulaArray =" '----------------- "Finalizar si siguiente k Finalizar Sub Sub deshacer () Hojas de trabajo (" hoja1 "). Celdas. Borrar hojas (" Hoja2 "). Células. Copiar hojas de cálculo (" hoja1 "). Rango (" A1 ") Fin Sub
Tenga en cuenta que
Gracias a venkat1926 por este consejo en el foro.