Excel - En makro til at omorganisere celler

  • Problem
  • Opløsning

Problem

Jeg har brug for din hjælp til at løse følgende problem.

  • Jeg har få filer, der indeholder data på mere end 50.000 poster. Nogle registrerer kolonne data ikke i henhold til overskrifterne. Hver fil indeholder tusindvis af poster, der kræver kolonnejustering i henhold til overskrifterne. Jeg har prøvet det ved makrooptagelse, men dets arbejde er kun i rækken #, som er optaget i makroen. Så det er ubrugeligt for mig.
  • Jeg har brug for en makro, som kun fungerer på række, hvis det er rækken søjle Q eller R eller S eller T eller U (nogen af ​​dem indeholder data, brug 'eller' tilstand) indeholdende data enten numerisk eller tekst. Hvis denne betingelse bliver sand, følger makroen følgende:

 Dato i kolonne 'E' klip og indsæt i kolonne 'F' Dato i kolonne 'J' klip og indsæt på kolonne 'H' Dato i kolonne 'L' klip og indsæt på kolonne 'J' og kopier derefter 'J' og indsæt det på 'G' Dato i kolonne 'M' klip og indsæt på kolonne 'W' Dato i kolonne 'N' klip og indsæt på kolonne 'X' Dato i kolonne 'O' klip og indsæt på kolonne 'K' Dato i kolonne ' P 'klip og indsæt på kolonne' L 'Dato i kolonne' Q 'klipp og indsæt på kolonne' O 'Dato i kolonne' R 'klipp og indsæt på kolonne' N 'Dato i kolonne' U 'klippe og indsæt på kolonne' P' 
  • Denne makro skal begynde at arbejde fra rå nr. 5 og slutter, hvor optegnelserne slutter.
  • Jeg vil være meget taknemmelig for dig for denne hjælp.

Opløsning

Prøv denne kode:

 Sub test () Dim lRow As Integer 'Skift Q til kolonne bogstav med data i sidste række. lRow = Range ("Q" & Rows.Count) .End (xlUp) .Row For Hver Celle I Område ("Q5: Q" & lRow) Hvis celle.Value "" _ Eller celle.Offset (0, 1). Værdi "" _ Eller celle.Offset (0, 2) .Value "" _ Eller celle.Offset (0, 3) .Value "" _ Eller celle.Offset (0, 4) .Value "" Derefter celle.Offset 0, -12) .Cut Destination: = cell.Offset (0, -11) celle.Offset (0, -7) .Cut Destination: = celle.Offset (0, -9) celle.Offset (0, -5 ) .Cut Destination: = cell.Offset (0, -7) celle.Offset (0, -7) .Copy Destination: = cell.Offset (0, -10) celle.Offset (0, -4) .Kut Destination = 0 0, -6) celle.Offset (0, -1) .Cut Destination: = cell.Offset (0, -5) celle.Copy Destination: = cell.Offset (0, -2) celle.Offset (0, 1 ) .Cut Destination: = cell.Offset (0, -3) celle.Offset (0, 4) .Kut Destination: = celle.Offset (0, -1) celle.Klekkeindhold ende Hvis næste ende sub 

Takket være TrowaD for dette tip.

Forrige Artikel Næste Artikel

Top Tips