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

Вход

Регистрация

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

 

= Мир MS Excel/Формирование ряда чисел - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Формирование ряда чисел (Макросы/Sub)
Формирование ряда чисел
bop4yh Дата: Среда, 18.02.2015, 22:04 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Имеется запись в ячейке: 1,2-5,10.
Нужно чтобы получился ряд чисел:1, 2, 3, 4, 5, 10. Каждое число нужно записать в отдельную ячейку.
Собственно для чего это нужно: позиции по чертежу перечислены в строку, нужно чтобы EXCEL "понял" что там за позиции для
того чтобы подцепить дополнительную информацию из других таблиц.
Заранее спасибо.
К сообщению приложен файл: 6700378.xls (26.0 Kb)
 
Ответить
СообщениеИмеется запись в ячейке: 1,2-5,10.
Нужно чтобы получился ряд чисел:1, 2, 3, 4, 5, 10. Каждое число нужно записать в отдельную ячейку.
Собственно для чего это нужно: позиции по чертежу перечислены в строку, нужно чтобы EXCEL "понял" что там за позиции для
того чтобы подцепить дополнительную информацию из других таблиц.
Заранее спасибо.

Автор - bop4yh
Дата добавления - 18.02.2015 в 22:04
Michael_S Дата: Среда, 18.02.2015, 22:36 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
как вариант, для вашего примера
[vba]
Код
Sub bop4yh()
Dim a, i&, S$, a1, II&
a = Split(Replace(Range("A2"), " ", ""), ",")
For i = 0 To UBound(a)
     If IsNumeric(a(i)) Then
         S = S & a(i) & " "
     Else
         a1 = Split(a(i), "-")
         For II = 0 To a1(1) - a1(0)
             S = S & a1(0) + II & " "
         Next
     End If
Next
a = Split(S)
Range("C2").Resize(1, UBound(a)) = a
End Sub
[/vba]
 
Ответить
Сообщениекак вариант, для вашего примера
[vba]
Код
Sub bop4yh()
Dim a, i&, S$, a1, II&
a = Split(Replace(Range("A2"), " ", ""), ",")
For i = 0 To UBound(a)
     If IsNumeric(a(i)) Then
         S = S & a(i) & " "
     Else
         a1 = Split(a(i), "-")
         For II = 0 To a1(1) - a1(0)
             S = S & a1(0) + II & " "
         Next
     End If
Next
a = Split(S)
Range("C2").Resize(1, UBound(a)) = a
End Sub
[/vba]

Автор - Michael_S
Дата добавления - 18.02.2015 в 22:36
bop4yh Дата: Четверг, 19.02.2015, 00:06 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Michael_S, спасибо все работает.

А можно объединить записи из нескольких ячеек и чтобы позиции шли по возрастанию?
К сообщению приложен файл: 5590859.xls (40.5 Kb)
 
Ответить
СообщениеMichael_S, спасибо все работает.

А можно объединить записи из нескольких ячеек и чтобы позиции шли по возрастанию?

Автор - bop4yh
Дата добавления - 19.02.2015 в 00:06
Michael_S Дата: Четверг, 19.02.2015, 00:50 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016

Работает с выделенными ячейками.


Сообщение отредактировал Michael_S - Четверг, 19.02.2015, 00:51
 
Ответить
Сообщение

Работает с выделенными ячейками.

Автор - Michael_S
Дата добавления - 19.02.2015 в 00:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Формирование ряда чисел (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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