
Ich versuche, Informationen von einem Blatt in ein anderes in derselben Arbeitsmappe zu übertragen.
Ich möchte jedoch, dass die positiven Zellen mit dem Namen ihrer Spalte in die nachfolgenden Blätter importiert werden.
Zum Beispiel:
| Example1 | Example2 | Example3
-----------+-----------+----------+----------
List One | x | | x
List Two | x | x |
List Three | x | |
Ich möchte also
in Tabelle 2 -Liste Eins
- Beispiel 1
- Beispiel 3
In Tabelle 3 -Liste Zwei
- Beispiel 1
- Beispiel 2
In Tabelle 4 -Liste Drei
- Beispiel 1
Hoffe, das macht für irgendjemanden Sinn! Tut mir leid für die schreckliche Codierung, rostig, rostig, rostig!
Antwort1
Ich gehe davon aus, dass Ihre Titel in Zeile 1 stehen und die Daten in Zeile 2 beginnen
In der 1. Spalte(Reihe ist hier egal)Ihrer anderen Blätter, geben Sie diese Formel =OFFSET(Sheet1!$A$1,0,SMALL(IF(2:2="X",COLUMN(2:2)),COLUMN())-1)
als Matrixformel mit Ctrl+ Shift+ einEnter
Kopieren Sie dies über die Zeile, und es werden die Spaltennamen aufgelistet. Das Ende ist erreicht, wenn die Formel #NUM!
Fehler ausgibt.
Ändern Sie für Blatt 3 das Verhältnis 2:2 in 3:3 und so weiter für die folgenden Blätter
Antwort2
Dies ermöglicht Ihnen eine größere Anzahl von Zeilen und Spalten und setzt alles außer nur „x“ voraus. Sie können sicher sein, dass es immer „x“ ist, und dies ganz einfach ändern. Außerdem habe ich diese Namensblätter entsprechend ihrem Listennamen erstellt. Wenn keine Blätter hinzugefügt werden, können Sie diesen Teil entfernen.
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