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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2017, 20:41   #1
tata70
Пользователь
 
Аватар для tata70
 
Регистрация: 24.03.2017
Сообщений: 13
Вопрос Помогите пожалуйста разбить текст из строки по столбцам

Необходимо чтобы название характеристики перед двоеточием ушла в заголовок столбца,а сама характеристика осталась в строке
Вложения
Тип файла: xlsx Помогите пожалуйста.xlsx (10.3 Кб, 16 просмотров)
tata70 вне форума Ответить с цитированием
Старый 01.11.2017, 01:47   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

пробуйте
Код:
Sub Tata70()
Dim v(), i&, s$(), d, x, cl As New Collection
  v = Range("B1", Cells(Rows.Count, "B").End(xlUp)).Value '.Resize(, 100)
  ReDim w$(0 To UBound(v), 1 To 50)
  On Error GoTo 1
  For i = 1 To UBound(v)
    For Each x In Split(v(i, 1), ";")
      s = Split(x, ":")
      If UBound(s) Then
        d = Trim(s(0))
        w(i, cl(d)) = Trim$(s(1))
      End If
    Next
  Next
  Rows(1).Insert
  Range("B1").Resize(UBound(w) + 1, cl.Count).Value = w
  Exit Sub

1 If Err.Number = 5 Then 'Invalid procedure call or argument - новый эл-т коллекции
    cl.Add cl.Count + 1, d
    If cl.Count > UBound(w, 2) Then ReDim Preserve w(0 To UBound(w), 1 To UBound(w, 2) * 2)
    w(0, cl.Count) = d
  Resume
  Else
    MsgBox "Непредвиденная ошибка " & Err & " " & Err.Description, vbCritical
    Exit Sub
  End If
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 01.11.2017 в 02:53. Причина: оптимизировал
Казанский вне форума Ответить с цитированием
Старый 22.11.2017, 16:33   #3
ПаВлА
Пользователь
 
Регистрация: 20.11.2017
Сообщений: 16
По умолчанию

Код:
Option Explicit
Option Base 1
Sub MuxiKotlety()
Dim Head, i&, x&, y&, lstr&
Application.ScreenUpdating = False
Head = Array("Торговая марка", "Сертификат", "Страна", "Состав", "Индивидуальная упаковка", "Размер упаковки", _
"Размер", "Вес", "Материал", "Тематика конструктора", "Возраст", "Типоразмер батареек", _
"Количество батареек", "Вид", "Материал для аппликации")
lstr = Cells(Rows.Count, 1).End(xlUp).Row
With CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Head)
        .Item(Head(i)) = i
    Next
    ReDim t(1 To UBound(Head) * lstr, 1 To UBound(Head))
    On Error Resume Next
    For x = 1 To lstr
        For y = 1 To UBound(Split(Cells(x, 2), ":"))
            i = .Item(Split(Split(Cells(x, 2), "; ")(y - 1), ": ")(0))
            If i = 0 Then MsgBox "Введите заголовок - <<" & Split(Split(Cells(x, 2), "; ")(y - 1), ": ")(0) & ">>": Exit Sub
            t(x, i) = Split(Split(Cells(x, 2), ": ")(y), "; ")(0)
        Next
    Next
End With
Sheets(2).[A1:R1] = Head
Sheets(2).[A2].Resize(lstr, UBound(Head)) = t
Application.ScreenUpdating = True
End Sub

Последний раз редактировалось ПаВлА; 22.11.2017 в 16:40.
ПаВлА вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбить по столбцам и строкам Евгений Таб Microsoft Office Excel 6 21.07.2015 19:02
разбить адрес по столбцам evdss Microsoft Office Excel 26 10.02.2014 18:16
Разбить по столбцам без измения формата: ТЕКСТОВЫЙ DimOwl Microsoft Office Excel 8 02.01.2013 10:11
Разбить текст на строки (java) I_cope Помощь студентам 0 18.11.2009 20:19
Помогите разнести текст ячейки по столбцам Vlad-S Microsoft Office Excel 4 14.08.2009 21:16