Excel - Macro per formattare il report
Problema
Spero di poter dire quello che sto cercando in un modo che abbia senso per tutti. Ho un rapporto cliente che corro e esporta in modo brutto.
Sembra questo:
Indirizzo Stato della periferia Codice postale Istruzioni di consegna Numero di telefono Numero di fax Indirizzo di posta elettronica
Tutte le informazioni di cui sopra sono nella colonna A, e vorrei creare una macro con le informazioni nella colonna AF, in modo che ogni intestazione abbia una nuova colonna.
Posso registrare macro di base, quindi probabilmente avrò bisogno di qualcuno che ne scriva uno per me, così posso semplicemente copiare e incollare * sorry *.
Spero che questo sia davvero semplice per qualcuno e sono disposti ad aiutarmi. Qualsiasi suggerimento / consiglio è molto apprezzato!
Soluzione
Obbiettivo:
Per dividere le linee è una cella e spostare ogni riga in una nuova cella sulla stessa riga.
ipotesi:
1. I dati partono da ROW 2
2. I dati sono nella colonna A
3. La colonna accanto ad A è dove i dati devono essere popolati
4. Ogni riga nelle celle di dati deve essere spostata in una nuova cella nella stessa riga
passi:
1. Leggi le ipotesi
2. Effettuare un backup del file
3. Premere ALT + F11 e inserire un nuovo modulo
4. Incollare il codice (dopo i passaggi)
5. Esegui il codice
Codice:
Sub SpiltData () Dim lMaxRows As Long Dim lRowBeanCounter As Long Dim vPos As Varian Dim Dim sHold As String Dim sTemp As String Dim iCellCounter As Integer Dim lStartAtRow As Long lStartAtRow = 1 lMaxRows = Celle (Rows.Count, "A"). End ( xlUp) .Row For lRowBeanCounter = lStartAtRow A lMaxRows sTemp = Cells (lRowBeanCounter, "A") iCellCounter = 2 Do While sTemp "" vPos = 0 vPos = InStr (1, sTemp, Chr (10)) Se vPos> 0 Then sHold = Sinistra (sTemp, vPos - 1) sTemp = Trim (Mid (sTemp, vPos + 1)) Else sHold = sTemp sTemp = "" End If iCellCounter = iCellCounter + 1 celle (lRowBeanCounter, iCellCounter) = sHold Loop Avanti lRowBeanCounter End Sub
Nota
Grazie a rizvisa1 per questo suggerimento sul forum.