Just nu i M3-nätverket
Gå till innehåll

Fråga om sortering av rader


Elle

Rekommendera Poster

Hej

 

Jag har en fil med en massa rader i Excel. Dessa vill jag sortera upp i kolumner.

Dvs, det som finns på rad 1 ska hamna i cell B1, det som står på rad 2 ska hamna i cell C1 etcetera.

 

Jag har en Case-sats som ser ut så här:

 

Case = "AAAA"

iCol = 0

iTargetRw = iTargetRw + 1

 

Case = "BBBB"

iCol = 1

...

 

Makrot vet när den ska byta rad för ett radbyte alltid ska ske när raden i kolumn A börjar med de fyra tecknen A(AAA). Problemet i mitt fall är att vissa rader börjar med samma fyra tecken (eller rättare sagt alla tecken) - fältnamnen är inte unika utan kan förekomma fler gånger.

 

Hur ska jag skriva för att makrot för varje rad i min A-kolumn (originalet) lägger informationen i en ny kolumn fram tills att det kommer till en rad i A-kolumnen som börjar med AAAA (eftersom den då ska byta rad och börja fylla i nästa)?

Länk till kommentar
Dela på andra webbplatser

Du motsäger dig lite i din text men om jag förstår dig rätt har du data i stil med

a
b
c
d
aaaa
a
b
c
d
e
aaaa

och vill räta ut denna till

a b c d
a b c d e

 

då borde koden se ut som

 

Sub MyRower()
Dim rwIndex As Integer
Dim clIndex As Integer
Dim key As String
key = "aaaa"
Dim c As Integer
Dim rnSource As Range
'källområdet'
Set rnSource = Blad1.Range("a1", Blad1.Cells(Blad1.Rows.Count, 1).End(xlUp))
rwIndex = 1
clIndex = 1
'stegar igenom raderna'
For c = 1 To rnSource.Rows.Count
If rnSource.Cells(c, 1) = key Then
	'räknar upp rad om träff, återsäller kolumn'
	rwIndex = rwIndex + 1
	clIndex = 1
Else
	'annars kopiera och räkna upp kolumn'
	Blad2.Cells(rwIndex, clIndex) = rnSource.Cells(c, 1)
	clIndex = clIndex + 1
End If
Next c
End Sub

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...