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

Problem med .sort


nite

Rekommendera Poster

Kan någon vänlig själ förklara för mig varför nedan kod fungerar kanon för sig själv men så fort jag lägger in den som del i en längre kod inte kan hålla raderna intakta utan endast sorterar kolumnerna "A:D" rätt. Nämnas skall att kolumnerna "E" och vidare inte har data i alla celler.

 

With Sheets("Data")
Dim rng As Range
 Set rng = .Range(Range("A5"), Range("A5").End(xlToRight).End(xlDown))
  With rng
   .Sort Key1:=Range("D5"), Order1:=xlAscending, Key2:=Range("E5"), Order2:=xlAscending, Header:=xlYes, Orientation:=xlTopToBottom
 End With
End With

 

 

//Nite

Länk till kommentar
Dela på andra webbplatser

nästlade with ser läskigt ut!

ser dessutom het onödigt ut här.

 

Dim rng As Range
Set rng = Sheets("Data").Range(Range("A5"), Range("A5").End(xlToRight).End(xlDown))
rng.Sort Key1:=Range("D5"), _
Order1:=xlAscending, _
Key2:=Range("E5"), _
Order2:=xlAscending, _
Header:=xlYes, _
Orientation:=xlTopToBottom

Länk till kommentar
Dela på andra webbplatser

Fast i3o6, även i din kod är det osäkert var man refererar egentligen.

Range("D5") ligger, beroende på var koden finns, på aktivt blad eller på bladet koden står.

Samt din Set rng, även den är ute på vift och kan gå helt galet.

 

såhär bör det se ut:

Dim rng As Range
With Sheets("Data")
Set rng = .Range(.Range("A5"), .Range("A5").End(xlToRight).End(xlDown))
rng.Sort Key1:=.Range("D5"), _
   	Order1:=xlAscending, _
   	Key2:=.Range("E5"), _
   	Order2:=xlAscending, _
   	Header:=xlYes, _
   	Orientation:=xlTopToBottom
End With

notera alla .Range som ser till att rätt blad används vid adresseringen.

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...