2017-02-22 10 views
1

Ich habe eine Excel-DateiWie sortiere ich jede Zeile mit Excel?

 A   B   C 
1| A_xxxx | B_xxxx | C_xxxx 
2| B_xxxx | A_xxxx | C_xxxx 
3| C_xxxx | B_xxxx | A_xxxx 

..... wie diese Suche (jeweils xxxx unterschiedliche Anzahl)

ich jede Zeile sortieren möchte, wie unten zu machen Tabelle:

 A   B   C 
1| A_xxxx | B_xxxx | C_xxxx 
2| A_xxxx | B_xxxx | C_xxxx 
3| A_xxxx | B_xxxx | C_xxxx 

....

Wie kann ich tun, um diese Anfrage?

+0

Gibt es immer nur ein einzelnes Zeichen vor dem Unterstrich und liegen alle im Bereich A-Z? – gbavba

+0

Es ist kein einzelnes Zeichen, aber ich kann es vor dem Unterstrich in ein einzelnes Zeichen ersetzen. Ich habe nur a-d, also sind sie alle im Bereich von A-Z. –

+0

Werden alle Werte in Spalte A vor dem Unterstrich mit denselben Zeichen beginnen oder muss jede Zeile nur alphabetisch sortiert werden? – gbavba

Antwort

0

Dieses Unter wird es mit VBA tun:

Sub SortValsToCols() 

Dim w1 As Worksheet 
Dim w2 As Worksheet 
Dim rCell As Range 
Dim rRng As Range 
Dim rowCounters As New Scripting.Dictionary 
Dim i As Long 

Set w1 = Sheets("Sheet1") 'Change to name of the worksheet containing data. 
Set w2 = Sheets("Sheet2") 'Change to name of a blank worksheet. The sorted data will end up here. 
Set rRng = w1.Range("A1:C3") 'Change to range of cells containing data. 

'Turn off ScreenUpdating to speed up execution. 
Application.ScreenUpdating = False 

'Fills a dictionary with keys from A-Z and gives each an initial value of 1. 
For i = 65 To 90 
    rowCounters.Add Key:=Chr(i), Item:=1 
Next i 

'Loops thru all cells in range specified and adds the value after the last populated _ 
    cell in the relevant column to the target sheet. 
For Each rCell In rRng.Cells 
    w2.Range(Left$(rCell.Value, 1) & rowCounters(Left$(rCell.Value, 1))).FormulaR1C1 = rCell.Value 
    rowCounters(Left$(rCell.Value, 1)) = rowCounters(Left$(rCell.Value, 1)) + 1 
Next rCell 

'Turn ScreenUpdating back on. 
Application.ScreenUpdating = True 

End Sub 

Hier finden Sie die 3 SET Aussagen ändern müssen, um Ihre Arbeitsmappe entsprechen und „Microsoft Scripting Runtime“ über Tools-> Referenzen im VBE hinzufügen vor der Ausführung .

Außerdem wird angenommen, dass alle Zellenwerte mit ?_ beginnen, wobei ? ein einzelner Großbuchstabe von A-Z ist.

Verwandte Themen