Excel - makro rakkude ümberkorraldamiseks

  • Probleem
  • Lahendus

Probleem

Mul on vaja teie abi järgmise probleemi lahendamiseks.

  • Mul on vähe faile, mis sisaldavad rohkem kui 50 000 kirje andmeid. Mõned salvestavad veergude andmeid vastavalt pealkirjadele. Iga fail sisaldab tuhandeid kirjeid, mis nõuavad veergude kohandamist vastavalt rubriikidele. Ma olen seda proovinud makro salvestamisega, kuid selle töö on ainult reale, mis on makro salvestatud. Niisiis, selle kasutu minu jaoks.
  • Mul on vaja makrot, mis toimib ainult reas, kui see on rea veerg Q või R või S või T või U (ükskõik milline neist sisaldab andmeid, kasutamist või tingimusi), mis sisaldavad andmeid kas numbrilist või teksti. Kui see tingimus on tõene, siis makro toimib järgmiselt:

 Kuupäeva veerus "E" lõigatakse ja kleepige veerus "F" Kuupäeva veerus "J" lõigatakse ja kleepige veergu "H" Kuupäeva veerus "L" lõigatakse ja kleepige veergu "J", seejärel kopeerige "J" ja kleepige "J" veerus "M" lõigus "G" veerus "N" veerus "N" lõikamise ja kleepimise veerg "X" veerus "X" kuupäev veerus "O" veerus "K" veergu "K" kuupäev veerus P 'lõika ja kleebi veergu' L 'veerus' Q 'lõikamise ja kleepimise veergu "O" Kuupäeva veerus "R" lõigatud ja kleepitud veerus "N" Kuupäeva veerus "U" veerus "U" lõikamine ja kleepimine P ' 
  • See makro peaks alustama tööd toorelt # 5 ja lõpeb, kus dokumendid lõpevad.
  • Ma olen teile selle abi eest väga tänulik.

Lahendus

Proovige seda koodi:

 Alamtest () Dim lRow Nagu Integer 'Muuda Q veergu kirjas viimase rea andmetega. lRow = Range ("Q" ja "Rows.Count") .End (xlUp). Rida igale lahtrile vahemikus ("Q5: Q" & lRow) Kui lahtrisse.Väärtus "" _ või lahtrisse.Offset (0, 1). Väärtus "" _ või lahtrisse.Offset (0, 2) .Väärtus "" _ või lahtrisse.Kasutaja (0, 3) .Väärtus "" _ või lahtrisse.Kasutaja (0, 4) .Väärtus "" Seejärel lahtrisse. 0, -12) .Cut Destination: = cell.Offset (0, -11) cell.Offset (0, -7) .Cut Destination: = cell.Offset (0, -9) cell.Offset (0, -5 ) .Cut Destination: = cell.Offset (0, -7) cell.Offset (0, -7). Kopeeri sihtkoht: = cell.Offset (0, -10) cell.Offset (0, -4). : = cell.Offset (0, 6) cell.Offset (0, -3) .Cut Destination: = cell.Offset (0, 7) cell.Offset (0, -2) .Cut Destination: = cell.Offset ( 0, -6) cell.Offset (0, -1) .Cut Destination: = cell.Offset (0, -5) cell.Copy Destination: = cell.Offset (0, -2) cell.Offset (0, 1 ) .Cut Destination: = cell.Offset (0, -3) cell.Offset (0, 4) .Cut Destination: = cell.Offset (0, -1) cell.ClearContents End Kui järgmine lõpp 

Tänu TrowaDile selle näpunäite eest.

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited