Excel - Macro за форматиране на отчет

Проблем

Надявам се да мога да кажа това, което търся по начин, който има смисъл за всички. Имам клиентски доклад, който тичам и той изнася по грозен начин.

Изглежда така:

 Адрес Предградие Град Пощенски код Инструкции за доставка Телефонен номер Номер на факс Email адрес 

Цялата горепосочена информация е в колона А и бих искал да създам макрос, който съдържа информацията в колона AF, така че всяко заглавие има нова колона.

Мога да записвам наистина основни макроси, така че вероятно ще се нуждая от някой, който да го напише, за да мога просто да копирам и поставя * sorry *.

Надяваме се, че това е наистина просто за някого и те са готови да ми помогнат. Всякакви предложения / съвети са високо оценени!

Решение

Обективен:

Разделянето на линии е клетка и преместване на всеки ред в нова клетка в същия ред.

Предположения:

1. Данните започват от ROW 2

2. Данните са в колона А

3. Колоната до А е мястото, където данните трябва да бъдат попълнени

4. Всеки ред в клетките за данни трябва да бъде преместен в нова клетка в същия ред

стъпки:

1. Прочетете предположенията

2. Направете резервно копие на файла

3. Натиснете ALT + F11 и поставете нов модул

4. Поставете кода (след стъпките)

5. Изпълнете кода

Код:

 Sub SpiltData () Dim lMaxRows Както Дълго Dim lRowBeanCounter Както Дълго Dim vPos Както Вариант Dim sHold As String Dim sTemp As String Dim iCellCounter Както Integer Dim lStartAtRow As Long lStartAtRow = 1 lMaxRows = Cells (Rows.Count, "A"). xLUp) .Row За lRowBeanCounter = lStartAtRow За lMaxRows sTemp = Клетки (lRowBeanCounter, "A") iCellCounter = 2 Докато sTemp "" vPos = 0 vPos = InStr (1, sTemp, Chr (10)) Ако vPos> 0 Тогава sHold = Ляво (sTemp, vPos - 1) sTemp = Подстригване (Средно (sTemp, vPos + 1)) Друго sHold = sTemp sTemp = "" Край Ако iCellCounter = iCellCounter + 1 Cells (lRowBeanCounter, iCellCounter) = sHold Loop Next lRowBeanCounter End Sub 

Забележка

Благодарение на rizvisa1 за този съвет на форума.

Предишна Статия Следваща Статия

Топ Съвети