0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 3
|
||||||
1 | ||||||
Поиск и выборка по листу excel09.06.2013, 20:21. Показов 2589. Ответов 15
Метки нет (Все метки)
Всем привет! Нужна помощь для чайника и тугодума)
Изначально наша компания вела клиентскую базу в гуглотаблицах. Некоторое время назад перешли на более-менее толковую CRM, а старая база была экспортирована в xls. Сейчас встала задача выдернуть из экселя все e-mail адреса. На ответах.мэил мне посоветовали следующий вариант:
Кроме того, насколько я еще помню VBA, на новый лист перенесутся ячейки, содержащие символ @, а не конкретные адреса. Если я правильно понимаю принципе, то речь идет о том, чтобы в ячейках, содержащих собаку взять фрагмент текста от пробела до пробела, содержащий этот символ и перенести на новый лист. А, чуть не забыл уточнить! Таблица строилась по следующему принципу: дата | номер проекта | *тут всяка сводная информация в разных столбцах* | имя, телефон и почта клиента (в произвольном порядке) Буду очень признателен, если кто поможет! Надеюсь, я не прошу о чем-то сверхсложном, но если зарвался - ткните носом)
0
|
09.06.2013, 20:21 | |
Ответы с готовыми решениями:
15
Поиск по листу Excel книги Реализовать поиск по листу Excel доступ к листу Excel Обращение к листу Excel по имени |
Модератор
|
||||||
09.06.2013, 22:43 | 2 | |||||
Чтобы не ругался:
Я понял, что e-Mail в четвертой колонке? И там еще может быть телефон? Самое правильное в этом случае - использовать регулярные выражения. Но можно и по-детски: 1) найти позицию "@" 2) от нее вправо и влево до конца/начала строки или первого пробела
0
|
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 3
|
|
09.06.2013, 22:55 [ТС] | 3 |
Catstail, object doesn' support this property or method
Все правильно, почта в четвертой колонке, однако ничто не мешает грохнуть первые три, чтобы осталась единственная колонка. Обычно, ячейка выглядит следующим образом: При этом ячейка может содержать почту, может не содержать, то же самое касается всего остального. То есть четкого регламента по их заполнению никогда не было. Сам менеджер разберется - остальное по барабану. Не могли бы Вы помочь мне оценить мне сложность этой задачи? В том плане, стоит ли искать бесплатного энтузиаста или сразу предлагать деньги за решение задачи?) Проблем особых нет, не думаю, что это будет много стоить.
0
|
996 / 355 / 135
Регистрация: 27.10.2006
Сообщений: 764
|
||||||
09.06.2013, 22:55 | 4 | |||||
Я бы ограничил бы поиск по UsedRange, а то на листе может быть дофига ячеек, если файл в формате Excel 2007 (1048576 * 16384 = 17 179 869 184 ячеек). Поэтому лучше так
0
|
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 3
|
|
09.06.2013, 23:02 [ТС] | 5 |
Pavel55, subscript out of range
Не подскажете, где мне купить мозги и прямые руки?)
0
|
996 / 355 / 135
Регистрация: 27.10.2006
Сообщений: 764
|
|
09.06.2013, 23:16 | 6 |
думаю стоит проверить, есть ли в книге Excel листы с названием "Лист1" и "Лист2". На "Лист1" должна быть какая-то информация, а "Лист2" должен быть пуст
0
|
Модератор
|
||||||
09.06.2013, 23:36 | 7 | |||||
0
|
996 / 355 / 135
Регистрация: 27.10.2006
Сообщений: 764
|
|||||||||||
09.06.2013, 23:48 | 8 | ||||||||||
Catstail,
если честно, то записи
0
|
996 / 355 / 135
Регистрация: 27.10.2006
Сообщений: 764
|
|
09.06.2013, 23:57 | 10 |
не очень понял, какой у вас офис, вы 4-ю цифру забыли написать.
Если офис 2000, то скажите что он у вас обрабатывает? только первый столбец? У меня Офис 2013 - обрабатываются все ячейки на листе. Я даю гарантию, что это будет так же и в Офис 2003, 2007, 2010. Про более ранние версии (XP, 2000, 97) не знаю. Aikhal, у вас какой офис установлен на компьютере (97, 2000, XP, 2003, 2007, 2010, 2013) ?
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
||||||
10.06.2013, 00:02 | 11 | |||||
Ну у Sheets(1) есть cells, rows, columns, areas, names и т.д.
Я бы для начала использовал UDF:
Или наоборот.
0
|
996 / 355 / 135
Регистрация: 27.10.2006
Сообщений: 764
|
|
10.06.2013, 00:09 | 12 |
А у Range("A1") есть:
Address Areas Borders Cells Characters Font Text Value Value2 и много всего. НО! Значением по-умолчанию, является Value Думаю, что VBA обрабатывая строку For Each ccc In Sheets("Лист1") по-умолчанию, берёт Cells и это подтверждается на простом примере.
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
10.06.2013, 00:09 | 13 |
Но у меня тоже без cells не работает (2007).
0
|
996 / 355 / 135
Регистрация: 27.10.2006
Сообщений: 764
|
|
10.06.2013, 00:19 | 14 |
да, согласен, не работает) Был не прав
P.S. всё же лучше Usedrange обрабатывать, чем Cells.
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
10.06.2013, 00:23 | 15 |
Ну вероятно достаточно обрабатывать один четвёртый столбец от первой строки до последней заполненной в этом столбце.
По описанию эти эмейлы не скачут по всему листу.
0
|
996 / 355 / 135
Регистрация: 27.10.2006
Сообщений: 764
|
||||||
10.06.2013, 00:42 | 16 | |||||
тогда так
0
|
10.06.2013, 00:42 | |
10.06.2013, 00:42 | |
Помогаю со студенческими работами здесь
16
Неправильно работает запрос к листу Excel Поиск по неактивному листу Получить доступ к листу Excel и прочитать данные Как применить SQL-запрос к листу Excel? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |