|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.11.2014, 22:24 | #1 |
Пользователь
Регистрация: 13.11.2014
Сообщений: 13
|
Соединение значений в столбцах (Очень нужна помощь!)
Доброго времени суток, уважаемые форумчане!
Столкнулся с проблемой при написании кода. Задача состоит в следующем: Есть таблица в которой (в каждом столбце) имеется необходимая информация(например дата, место провидения, сумма, время), но для удобства её обработки необходимо её переместить по столбцам, а некоторые столбцы объединить в один(что бы в одном столбце вместе стояли дата и время, в другом отдельно сумма и т.д.). Есть один нюанс, таких таблиц много, и количество строк в них всегда разное. С переносом столбцов с места на место справились без проблем, силами копирования и перемещения. Объединить тоже получилось, но только силами формул, а что бы применить формулу ко всему столбцу возникли сложности. ActiveCell.FormulaR1C1 = "=RC[1]&RC[2]&RC[-1]" Selection.AutoFill Destination:=Range("B3:B125"), Type:=xlFillDefault В принципе такой код вполне устраивал. Но возникла проблема в том, что определяем количество строк в таблице переменно "i". А вот как вставить эту переменную в значение номера ячейки что бы получилось так (но было работоспособно): Selection.AutoFill Destination:=Range("B3:B&i"), Type:=xlFillDefault Тип переменной пробовал и Range и Integer не получается. Подскажите пожалуйста как поправить. А может есть способ проще слепить эти столбцы? но с учетом того что количество строк всегда разное (варьируется от 100 до 300 000 и более) Очень надеюсь на Вашу помощь. Последний раз редактировалось 123456678; 13.11.2014 в 22:30. |
13.11.2014, 23:42 | #2 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Цитата:
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
13.11.2014, 23:43 | #3 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
То ,что в кавычках у вас-это текст,переменную надо вынести на свободу
Selection.AutoFill Destination:=Range("B3:B&i"), Type:=xlFillDefault Selection.AutoFill Destination:=Range("B3:B" & i ), Type:=xlFillDefault PS:Опять не успел
Анализ,обработка данных Недорого
|
13.11.2014, 23:47 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Сережа, зато "отпустить переменную на свободу" - звучит гораздо круче!!!
очень образная фраза
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
13.11.2014, 23:55 | #5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
а в режиме "all inclusive" строка может выглядеть так:
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
14.11.2014, 00:12 | #6 |
Пользователь
Регистрация: 13.11.2014
Сообщений: 13
|
IgorGO, doober, Огромное Вам спасибо!
К сожалению целиком код не под рукой , затра с утра все проверю! Одно маленькое уточнение, какой тип переменной ставить? Long или Range? или так и не понимаю до конца... З.Ы. "Вынести на своду" - это звучит гордо! амнистия почти, мать её! |
14.11.2014, 00:20 | #7 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
а последний вариант вообще без переменной, она вычисляется внутри выражения, как № последней строки с данными в колонке В
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
14.11.2014, 00:28 | #8 |
Пользователь
Регистрация: 13.11.2014
Сообщений: 13
|
IgorGO, Спасибо за оба варианта!
Душа не выдержала ждать до завтра, набросал примерно то что мне надо, правда без встроенной функции определения номера последней заполненной строки (которая определяет значение переменной) и ТАДАМ! все заработало! Второй вариант я не совсем понял, но если не ошибся, там есть недостаток, что если в столбце окажется пустая ячейка, то он на ней остановится. Но завтра постараюсь по экспериментировать. А ещё, если не сложно, может подскажите какую нибудь нормальную книгу, желательно на русском (я понимаю что это почти не сопоставимо), про VBA? |
14.11.2014, 00:47 | #9 | |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Цитата:
Лучшая книга-это попробовать разобраться в решениях,которые выкладывают на форумах. Постепенно увеличивая уровень сложности. Скопировали код себе в файл,выполняете по шагам,смотрите на значения переменных. Попытаться понять смысл происходящего. На это уйдет не один год.
Анализ,обработка данных Недорого
|
|
14.11.2014, 08:10 | #10 |
Пользователь
Регистрация: 13.11.2014
Сообщений: 13
|
doober, спасибо за совет, попробую.
А про время это точно. "Всю жизнь учись, все равно дураком помрешь" (с) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) | Farridjan | Помощь студентам | 1 | 03.07.2009 12:24 |
Очень нужна помощь! Нужно найти ошибку в очень простой программе. | Lex55555777 | Помощь студентам | 3 | 07.12.2008 20:32 |
Нужна помощь в Паскале. Очень-очень срочно. | !!! | Помощь студентам | 2 | 09.02.2007 15:12 |