|
|
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Спецы по скриптам, подскажите как в Excel'е реализовать следующую вещь 3мя разными или один скриптом. Или хотя бы подскажите, где копать. Времени почти нет... буквально, один рабочий день. Дан стобец, в ячейках которого через запятую располагаются целые числа: Код: plaintext 1. 2. 3. Из него должно получиться 3 столбца: Код: plaintext 1. 2. 3. Получается, что задача состоит из 3 частей. В какой последовательности их лучше решать - не знаю: 1. Нужно сократить количество чисел в каждой ячейке столбца до трёх, просто отбросив лишние справа: Код: plaintext 1. 2. 3. 2. Добавить перед каждым числом 'x:/' и после каждого числа '.y': Код: plaintext 1. 2. 3. 3. Создать рядом ещё 2 столбца и распределить получившиеся конструкции по трём столбцам (разделитель - запятая): Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 13:43 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
3я задача решена. Оказывается, всё просто. меню "данные"-> "текст по столбцам..." http://sql.ru/forum/actualthread.aspx?tid=299967&hl=%f0%e0%e7%e1%e8%f2%fc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 13:51 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
elik13th 2. Добавить перед каждым числом 'x:/' и после каждого числа '.y': Код: plaintext 1. 2. 3. это решается функцией СЦЕПИТЬ() http://office.microsoft.com/ru-ru/excel/HP052090201049.aspx Как только всё это запихнуть в один скрипт... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 14:14 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:03 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
ReDim MyArr T (1 To UBound(MyArr, 1) + 1, 1 To 3) T лишнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:06 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, стал изучать - T не лишнее (я думал - техническая описка...) почему так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:21 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Автор, а нужна ли вообще эта строка? Без Т не работает, но работает без этой строки вообще... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:33 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Hugo121 , Огроменное тебе спасибо! Выручил меня, полного нуля в VB. Всё работает как надо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:35 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Hugo121Автор, а нужна ли вообще эта строка? Без Т не работает, но работает без этой строки вообще... Я не знаю, времени с кодом разбираться нет совсем. Главное, что работает=) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:37 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
2 Hugo121 , Да Вы действительно правы, строка Код: plaintext 2 elik13th , Обидно, что топик стартеры зачастую не удосуживаются даже разобратся в коде... А Вы даже не удосужились прочитать кто автор кода... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:40 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
MaximuS_G, Извини, пожалуйста! Конечно, недосмотрел.. виноват. Спасибо тебе, конечно, за код!! Просто бегаю меж двух компов, стол завален схемами баз данных, туча окон открыто - нужно очень многое сегодня сделать. Самому интересно разобраться и всё автоматизировать к чертям, но реально сейчас нет времени. Ещё раз огромное спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:46 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Ну раз меня посчитали автором кода, я просто обязан :) Чисто из спортивного интереса (обрабатываем 1-ый столбец 1-го листа): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2009, 19:47 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Решил поучаствовать: 1) вместо selection любой диапазон, в первом столбце которого данные для раздела 2) предполагается что конструкция x:/12.y нужна лишь визуально, при этом в ячейке остается лишь цифра, а меняется формат отображения, если не угадал то можно будет переделать это т момент 3) все данные более 3-х столбцов справа от первоначального столбцп очищаются. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 00:02 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
DeggasadРешил поучаствовать: 2) предполагается что конструкция x:/12.y нужна лишь визуально, при этом в ячейке остается лишь цифра, а меняется формат отображения, если не угадал то можно будет переделать это т момент не угадал =) Содержание - самое главное в данном случае. Hugo121, Скрипт работает на ура - именно его взял на вооружение. Т.к. мне в реальности не 3, а 8 столбов нужно, и в нём это легко правится. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 11:58 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
2 Hugo121 , а можно вот эту строку словами ? Код: plaintext 2 Deggasad , если не тяжело, можно вашу процедуру немного словами ? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 12:59 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
MaximuS_G 2 Hugo121 , а можно вот эту строку словами ? Код: plaintext Вероятно, просмотр столбца А первого листа, всей использованной области (всего листа, не только столбца А). В детали не вдавался, взял из рабочего примера. Возможно, лучше заменить на что-то типа Код: plaintext elik13th - мне тоже мой код больше нравится, легко поменять все условия, кстати Trim() отрезает пробелы в начале и конце значений (на всякий случай, можно убрать, если не критично) :) - я пытался разобраться в коде MaximuS_G, но времени не хватило... но зато повёлся на его = и забыл про условие задачи (/) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 14:18 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
elik13thDeggasadРешил поучаствовать: 2) предполагается что конструкция x:/12.y нужна лишь визуально, при этом в ячейке остается лишь цифра, а меняется формат отображения, если не угадал то можно будет переделать это т момент не угадал =) Содержание - самое главное в данном случае. Я же написал, это можно переделать, основная суть моего участия, я хотел сделать без цикла, по крайней мере без цикла в VBA, ниже вариант, в котором очень легко менять количество столбцов :) и он остается без цикла. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 16:02 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Hugo121...- это сарказм? Почему сарказм ? Просто функция intersect для меня немного неясна я и спросил... Насколько я понимаю здесь: Код: plaintext Тогда действительно функция intersect лишняя... Лушче так: Код: plaintext 2 Deggasad , Вы наверное тоже подумали что мой вопрос это сарказм ? На самом деле просто интересное решение... Прийдется самому разбиратся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 21:20 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Я старался подключить UsedRange, к сожалению без Intersect не получилось. А прописывать в код прямое указание на область не хочется, к тому же она нам не известна... Хотя конечно так было бы красивее Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 22:00 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Ну разве что так (привлечь ActiveSheet.UsedRange): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 22:18 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
[quot Hugo121]Я старался подключить UsedRange, к сожалению без Intersect не получилось./quot] а так ? Код: plaintext только если Вы диапазон прямо не хотите указывать, то и Лист прямо незачем указывать. И незачем в коде предполагать, что всегда x начинается с 1 , т.к. UsedRange не всегда начинается с 1-го столбца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 14:26 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Так Код: plaintext 1. Код: plaintext 1. Насчёт х - это не ко мне, мой х всегда начинается с 0 :) Итого: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 15:22 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Hugo121 Насчёт х - это не ко мне, мой х всегда начинается с 0 :) Итого: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. В том то и дело, ведь первый столбец в UsedRange не всегда A , а что будет если первый столбец в UsedRange будет N ? И в этом cc.Rows.Row явно переборщили, можно просто cc.Row Предлагаю: 1) привязываться к имеющейся ячейке, коллекцию которых мы перебираем, это всегда более правильно, тогда можно оставить Ваш x :) Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 18:18 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Согласен, про х я не понял/запутался :) А Rows.Row - где-то именно так работало, по привычке... Но тогда и ActiveSheet.UsedRange.Columns(1).Cells надо как-то под активную ячейку переделать. У меня красиво не получается :( Или c = InputBox("Input Column Number", "c", "", 1500, 2000) привлечь. Жаль только, что заказчику такой красивый код уже не нужен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 18:40 |
|
||
|
Как отбросить лишнее в ячейках и разбить столбец на несколько
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 20:50 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=184&tid=2179022]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
20ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 340ms |

| 0 / 0 |
