Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2012, 09:15   #1
dzaymko
Пользователь
 
Регистрация: 15.04.2012
Сообщений: 18
По умолчанию можно написать макрос для такой задачи????

перенос несколько столбцов в один с описания бренда

пример внутри
Вложения
Тип файла: rar премьер.rar (109.3 Кб, 12 просмотров)
dzaymko вне форума Ответить с цитированием
Старый 24.04.2012, 10:05   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Можно.
Довольно быстро отработает на массивах.
Вам хватит описать в общих чертах алгоритм?
Код нудный, поэтому его затак писать не буду. Не интересно, жалко времени.
А алгоритм могу описать - берёте исходные данные в массив, создаёте пустой под нужный размер исходя из размера исходного, затем циклом перекладываете данные в нужном (нудном... ) порядке.
Результат выгружаете на новый лист.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 24.04.2012, 20:08   #3
dzaymko
Пользователь
 
Регистрация: 15.04.2012
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Можно.
Довольно быстро отработает на массивах.
Вам хватит описать в общих чертах алгоритм?
да хватит в общих чертах ! не нужно для всей таблицы ! для 2 -3 хватит дальше сам!
dzaymko вне форума Ответить с цитированием
Старый 24.04.2012, 20:33   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Хороший ответ!

Код:
Option Explicit

'алгоритм могу описать - берёте исходные данные в массив,
'создаёте пустой под нужный размер исходя из размера исходного,
'затем циклом перекладываете данные в нужном (нудном... ) порядке.
'Результат выгружаете на новый лист.

Sub perenos()
    Dim a(), i&, ii&
    a = Sheets("исходный").UsedRange.Value
    ReDim b(1 To (UBound(a) - 1) * 14, 1 To 5)
    ii = 1
    For i = 2 To UBound(a)
        
        b(ii, 1) = Mid(a(i, 1), 4)
        b(ii, 2) = a(i, 2)
        b(ii, 3) = Mid(a(i, 3), 4)
        b(ii, 4) = a(1, 3)
        b(ii, 5) = "Пружина ходовой части"
        b(ii + 1, 1) = b(ii, 1)
        b(ii + 1, 2) = b(ii, 2)
        b(ii + 1, 3) = a(i, 4)
        b(ii + 1, 4) = a(1, 4)
        b(ii + 1, 5) = "Пружина ходовой части"
        
         'и т.д. -  для 2х сделал, дальше сам! :)
         
        ii = ii + 14
    Next

    With Workbooks.Add(1).Sheets(1)
        .[A1:D1].Value = Split("FIT ПРИМЕНЕНИЕ OE OE")
        .[a2].Resize(ii, 5) = b
    End With
End Sub
Вообще вроде по размеру совпадает, а вот данные результата в Вашем примере как-то не так разложены.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 24.04.2012 в 21:57.
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно написать макрос для Ворда Layer Фриланс 2 06.12.2010 21:35
для работы написать макрос для Excel и Word.... smanna Microsoft Office Excel 2 30.11.2010 12:43
Нужно написать макрос для ворда (5$) Krel Фриланс 1 29.09.2010 17:58
Помогите написать макрос для... КотФиларет Microsoft Office Word 15 24.01.2009 23:00
Помогите написать макрос для... КотФиларет Microsoft Office Word 6 23.01.2009 00:35