
Estoy intentando llevar información de una hoja a otra en el mismo libro.
Sin embargo, me gustaría que las celdas positivas se importen a las hojas subsecuentes con el nombre de su columna.
Por ejemplo:
| Example1 | Example2 | Example3
-----------+-----------+----------+----------
List One | x | | x
List Two | x | x |
List Three | x | |
Entonces me gustaría
en Hoja2 -Lista uno
- Ejemplo 1
- Ejemplo3
En Hoja3 -Lista dos
- Ejemplo 1
- Ejemplo2
En la Hoja 4 -Lista tres
- Ejemplo 1
¡Espero que eso tenga algún tipo de sentido para alguien! ¡Perdón por la terrible codificación, oxidado, oxidado, oxidado!
Respuesta1
Supongo que sus títulos están en la fila 1 y los datos comienzan en la fila 2.
En la 1ra columna(la fila no importa aquí)de sus otras hojas, ingrese esta fórmula =OFFSET(Sheet1!$A$1,0,SMALL(IF(2:2="X",COLUMN(2:2)),COLUMN())-1)
como una fórmula matricial con Ctrl+ Shift+Enter
Copie esto en la fila y enumerará los nombres de las columnas. El final se alcanza cuando la fórmula empieza a dar #NUM!
errores.
Para la hoja 3, cambie 2:2 a 3:3 y así sucesivamente para las hojas siguientes.
Respuesta2
Esto le permite tener una mayor cantidad de filas y columnas y asume cualquier cosa en lugar de solo "x". Puede estar seguro de que siempre es "x" y cambiar esto con bastante facilidad. También hice estas hojas de nombres según el nombre de su lista. Si no se pueden agregar hojas, puede eliminar esa parte.
Sub columnsToListSheets()
LastCol = Sheets("Sheet1").UsedRange.Columns.Count
For rowNumber = 2 To 4
i = 1
ListName = Sheets("Sheet1").Cells(rowNumber, 1)
Sheets.Add
NewSheet = ActiveSheet.Name
Worksheets(NewSheet).Cells(1, 1) = ListName
'You may want to name the worksheet after the list
Worksheets(NewSheet).Name = ListName
For colNumber = 2 To LastCol
'"x" may be good enough to test for
If Worksheets("Sheet1").Cells(rowNumber, colNumber) <> "" Then
i = i + 1
'Worksheets(NewSheet).Cells(i, 1) = Worksheets("Sheet1").Cells(1, colNumber)
Worksheets(ListName).Cells(i, 1) = Worksheets("Sheet1").Cells(1, colNumber)
End If
Next colNumber
Next rowNumber
End Sub