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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2010, 02:48   #1
bysteps
 
Регистрация: 20.03.2010
Сообщений: 3
По умолчанию Диапазон раскидать по ячейкам

Здавствуйте, бью голову, не знаю как сделать!

есть ячейка ввида '55-59', можно ли как-то сделать последовательность целых чисел начаная с 55 и заканчивая max и записать в ячейки
т.е. в итоге должно получиться: 55 56 57 58 59.

и еще вопрос, можно ли программно на VBA транспонировать строку(если есть примерчик, было бы замечательно)

Спасибо заранее!
bysteps вне форума Ответить с цитированием
Старый 20.03.2010, 03:36   #2
kimtan
 
Регистрация: 14.03.2010
Сообщений: 6
По умолчанию

По первому вопросу можно формулой массива, со всеми проверками:
=ЕСЛИ((ПСТР($A$1;ПОИСК("-";$A$1)+1;10)-ПСТР($A$1;1;ПОИСК("-";$A$1)-1)+1)<СТРОКА(A1);"";НАИМЕНЬШИЙ(СТРО КА(ИНДЕКС(A:A;ПСТР($A$1;1;ПОИСК("-";$A$1)-1)):ИНДЕКС(A:A;ПСТР($A$1;ПОИСК("-";$A$1)+1;10)));СТРОКА(A1)))
и растянуть вниз
kimtan вне форума Ответить с цитированием
Старый 20.03.2010, 09:35   #3
deni1982
Пользователь
 
Регистрация: 01.03.2010
Сообщений: 25
По умолчанию

транспонирование

Sub Макрос1()

Range("A1:A22").Copy
Range("A33").PasteSpecial Transpose:=True

End Sub

это не я такой умный просто макрорекордер дал такой результат,
ты бы тоже смог

Последний раз редактировалось deni1982; 20.03.2010 в 11:16.
deni1982 вне форума Ответить с цитированием
Старый 20.03.2010, 11:22   #4
aval
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 68
По умолчанию

Так лаконичнее:
Sub Макрос()
Range("A3:A18").Copy
Range("B3").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
End Sub
aval вне форума Ответить с цитированием
Старый 20.03.2010, 11:35   #5
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

Код:
Sub pp()
Dim s
Dim i As Long
Dim k As Long
s = Split([a1], "-")
k = 1
For i = Val(s(0)) To Val(s(UBound(s)))
Cells(1, k) = i
k = k + 1
Next i
End Sub
"55-59" в ячейке А1
Dophin вне форума Ответить с цитированием
Старый 20.03.2010, 12:00   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и еще вариант(ы) формул, которые разбросают элементы диапазона Х-У по ячейкам в строке или в колонке.
Оцените компактность формулы.
Вложения
Тип файла: rar Книга278.rar (3.4 Кб, 19 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 20.03.2010, 12:17   #7
kimtan
 
Регистрация: 14.03.2010
Сообщений: 6
По умолчанию

Производительность тоже иногда имеет значение
kimtan вне форума Ответить с цитированием
Старый 20.03.2010, 23:31   #8
bysteps
 
Регистрация: 20.03.2010
Сообщений: 3
По умолчанию

Всем откикнувшимся огромное СПАСИБО,
осталось только скомпоновать мне все в VBA
bysteps вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Раскидать изображения по странице Laita HTML и CSS 3 31.08.2009 17:07
раскидать таблички Excel на страницу в Word TayfooN Microsoft Office Excel 3 28.03.2009 16:54
Как написать в коде чтобы диапазон А копировался как значение в диапазон В. Dorvir Microsoft Office Excel 12 23.05.2008 22:11
Раскидать сборки по станциям - Интересно! jungo Microsoft Office Excel 2 20.05.2008 13:19
как раскидать сгруппированные данные из одного стобца по нескольким hudoi Microsoft Office Excel 2 07.02.2007 23:42