Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Преобразовать текст с разделителями в строки. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Преобразовать текст с разделителями в строки.
tarvs Дата: Пятница, 28.06.2013, 12:08 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день. Есть ли такая функция как преобразовать текст (числа через запятую с пробелом), в строки в эксель. Нужно через макрос, т.к. строк с текстом много.
Спасибо.
К сообщению приложен файл: 01_05.xlsx (15.7 Kb) · 01_05_.xlsx (36.3 Kb)
 
Ответить
СообщениеДобрый день. Есть ли такая функция как преобразовать текст (числа через запятую с пробелом), в строки в эксель. Нужно через макрос, т.к. строк с текстом много.
Спасибо.

Автор - tarvs
Дата добавления - 28.06.2013 в 12:08
Serge_007 Дата: Пятница, 28.06.2013, 12:29 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
В Excel такой функции нет
На VBA для Вашего файла можно так (разделитель по умолчанию запятая с пробелом, но можно установить другой):
[vba]
Код
Function СЦЕПИТЬ_ЧЕРЕЗ_РАЗДЕЛИТЕЛЬ(Диапазон As Range, Optional Разделитель As String = ", ")
arr = Application.Transpose(Диапазон)
СЦЕПИТЬ_ЧЕРЕЗ_РАЗДЕЛИТЕЛЬ = Join(arr, Разделитель)
End Function
[/vba]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВ Excel такой функции нет
На VBA для Вашего файла можно так (разделитель по умолчанию запятая с пробелом, но можно установить другой):
[vba]
Код
Function СЦЕПИТЬ_ЧЕРЕЗ_РАЗДЕЛИТЕЛЬ(Диапазон As Range, Optional Разделитель As String = ", ")
arr = Application.Transpose(Диапазон)
СЦЕПИТЬ_ЧЕРЕЗ_РАЗДЕЛИТЕЛЬ = Join(arr, Разделитель)
End Function
[/vba]

Автор - Serge_007
Дата добавления - 28.06.2013 в 12:29
RAN Дата: Пятница, 28.06.2013, 13:19 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеУниверсально

Автор - RAN
Дата добавления - 28.06.2013 в 13:19
Pelena Дата: Пятница, 28.06.2013, 13:28 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19409
Репутация: 4558 ±
Замечаний: ±

Excel 365 & Mac Excel
По-моему ТС нужно обратное преобразование


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПо-моему ТС нужно обратное преобразование

Автор - Pelena
Дата добавления - 28.06.2013 в 13:28
KuklP Дата: Суббота, 29.06.2013, 13:21 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Цитата (Pelena)
ТС нужно обратное преобразование

Угу smile
[vba]
Код
Public Sub www()
       Dim c As Range, a
       For Each c In Selection
           a = Application.Trim(Split(c, ","))
           c.Offset(, 1).Resize(, UBound(a)).NumberFormat = "@"
           c.Offset(, 1).Resize(, UBound(a)) = a
       Next
End Sub
[/vba]Выделить нужный диапазон и запустить.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Суббота, 29.06.2013, 13:23
 
Ответить
Сообщение
Цитата (Pelena)
ТС нужно обратное преобразование

Угу smile
[vba]
Код
Public Sub www()
       Dim c As Range, a
       For Each c In Selection
           a = Application.Trim(Split(c, ","))
           c.Offset(, 1).Resize(, UBound(a)).NumberFormat = "@"
           c.Offset(, 1).Resize(, UBound(a)) = a
       Next
End Sub
[/vba]Выделить нужный диапазон и запустить.

Автор - KuklP
Дата добавления - 29.06.2013 в 13:21
KuklP Дата: Суббота, 29.06.2013, 14:10 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Даже так:
[vba]
Код
Public Sub www()
     Dim c, a, i&, r, n
     r = Selection.Value
     i = 7
     ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
     Range("A68:F69").MergeCells = False
     [f:f].NumberFormat = "@"
     For c = 1 To UBound(r)
         a = Application.Transpose(Application.Trim(Split(r(c, 6), ",")))
         For n = 1 To 5
             Cells(i, n).Resize(UBound(a)) = r(c, n)
         Next
         Cells(i, 6).Resize(UBound(a)) = a
         i = i + UBound(a)
     Next
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Суббота, 29.06.2013, 14:15
 
Ответить
СообщениеДаже так:
[vba]
Код
Public Sub www()
     Dim c, a, i&, r, n
     r = Selection.Value
     i = 7
     ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
     Range("A68:F69").MergeCells = False
     [f:f].NumberFormat = "@"
     For c = 1 To UBound(r)
         a = Application.Transpose(Application.Trim(Split(r(c, 6), ",")))
         For n = 1 To 5
             Cells(i, n).Resize(UBound(a)) = r(c, n)
         Next
         Cells(i, 6).Resize(UBound(a)) = a
         i = i + UBound(a)
     Next
End Sub
[/vba]

Автор - KuklP
Дата добавления - 29.06.2013 в 14:10
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!