„Excel“ - „Makro“, jei norite formatuoti ataskaitą
![](http://img.brin-designs.com/img/games/706/excel-macro-format-report.png)
Problema
Tikiuosi, kad galiu ištarti tai, ko aš ieškau, tokiu būdu, kuris yra prasmingas visiems. Turiu kliento ataskaitą, kurią vykdau ir eksportuoja bjauriu būdu.
Tai atrodo taip:
Adresas Suburb State Pašto kodas Pristatymo instrukcijos Telefono numeris Fakso numeris El. Pašto adresas
Visa pirmiau pateikta informacija yra A stulpelyje, ir norėčiau sukurti makrokomandą, kuri turi informaciją stulpelyje AF, kad kiekviena antraštė turėtų naują stulpelį.
Galiu įrašyti tikrai pagrindines makrokomandas, todėl tikriausiai reikės ką nors parašyti man, kad galėčiau tiesiog nukopijuoti ir įklijuoti * atsiprašau *.
Tikimės, kad tai tikrai paprasta ir jie nori man padėti. Visi pasiūlymai / patarimai labai vertinami!
Sprendimas
Tikslas:
Jei norite suskirstyti eilutes, tai yra langelis ir kiekviena eilutė perkeliama į naują eilutę toje pačioje eilutėje.
Prielaidos:
1. Duomenys prasideda 2 eilutėje
2. Duomenys pateikiami A skiltyje
3. Stulpelis šalia A yra tas, kur reikia pateikti duomenis
4. Kiekviena duomenų langelių eilutė turėtų būti perkelta į naują langelį toje pačioje eilutėje
Žingsniai:
1. Perskaitykite prielaidas
2. Padarykite failo atsarginę kopiją
3. Paspauskite ALT + F11 ir įdėkite naują modulį
4. Įklijuokite kodą (po žingsnių)
5. Vykdykite kodą
Kodas:
Sub spiltData () Dim lMaxRows As Long Dim lRowBeanCounter As Long Dim vPos Kaip Variantas Dim sHold As String Dim sTemp Kaip String Dim iCellCounter Kaip Integer Dim lStartAtRow As Long lStartAtRow = 1 lMaxRows = Ląstelės (eilutės.Skaičiuoti, "A"). xlUp) .Row for lRowBeanCounter = lStartAtRow Į lMaxRows sTemp = Ląstelės (lRowBeanCounter, "A") iCellCounter = 2 Atlikite, kol sTemp "" vPos = 0 vPos = InStr (1, sTemp, Chr (10)) Jei vPos> 0 Tada sHold = Kairė (sTemp, vPos - 1) sTemp = Trim (viduryje (sTemp, vPos + 1)) Else sHold = sTemp sTemp = "" pabaiga Jei iCellCounter = iCellCounter + 1 ląstelės (lRowBeanCounter, iCellCounter) = sHold Loop Kitas lRowBeanCounter End Sub
Pastaba
Ačiū rizvisa1 už šį patarimą forume.