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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2009, 08:54   #1
RGZZ
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 15
По умолчанию Можно ли "прошелкать" сразу все ячейки выделенного дипапазона?

Имеется проблема с данными в экселе, после вытягивания из базы данных.
(имеется только один возможный способ вытягивания) Так вот: на выходе в листе эксель имеем данные, не приспособленные к фильтрованию и функции САБТОТАЛ, (сабтотал считает пустые ячейки), и "находящиеся" в текстовом состоянии. Если шелкать дважды по ячейке, она приходит в себя. Шелкать по всему листу удовольствия не доставляет, поэтому приходиться бороться с ячейками поиском-заменой. Можно ли это упростить? Пример в файлеsample2.rar
RGZZ вне форума Ответить с цитированием
Старый 05.05.2009, 09:09   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Это вам поможет:

Код:
Sub СуперМакрос()
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
End Sub
Он за долю секунды приведёт все ячейки в порядок.
EducatedFool вне форума Ответить с цитированием
Старый 05.05.2009, 09:23   #3
RGZZ
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 15
По умолчанию

Это то, что нужно!
Хотя и убивает САБТОТАЛ и ЛУКАП, но их можно протянуть и потом.
Еще раз спасибо!
RGZZ вне форума Ответить с цитированием
Старый 05.05.2009, 09:30   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Попробуйте тогда такой вариант:
(первые 2 строки листа он не затрагивает)

Код:
Sub СуперМакрос()
    ActiveSheet.UsedRange.Offset(2).Value = ActiveSheet.UsedRange.Offset(2).Value
    ActiveSheet.UsedRange.EntireColumn.AutoFit ' автоподбор ширины столбцов
End Sub
Если бы Вы указали, в каком диапазоне надо обрабатывать данные (чтобы не зацепить формулы), можно бы ло бы написать более оптимальный код.

PS: Можно, конечно, перебирать все ячейки, проверяя, формула в них или нет, но, если объём данных будет большой (тысячи строк), ждать придётся долго...
EducatedFool вне форума Ответить с цитированием
Старый 13.06.2009, 14:11   #5
RGZZ
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 15
По умолчанию Новая проблема

Опять столкнулся с проблемой "прощелкивания".
необходимо в прикрепленно файле фильтровать по параметру "содержит" (contains) Половина данных фильтруется, (к примеру записи, начинающиеся с 30), а половина нет ( начинающиеся с 125, к примеру).

Код, который приведен выше не приводит данные в себя. Ума не приложу, что такое.
RGZZ вне форума Ответить с цитированием
Старый 13.06.2009, 14:13   #6
RGZZ
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 15
По умолчанию

Забыл прикрепить:sample3.rar
RGZZ вне форума Ответить с цитированием
Старый 13.06.2009, 14:41   #7
IFRSoff
Заблокирован
 
Регистрация: 23.02.2009
Сообщений: 306
По умолчанию

Автофильтр по параметру содержит ищет только текстовые значения, а не числовые. Скорее всего, прощелкиванием вы пытались избавиться от текстового формата. Получается вы зря прощелкивали. Теперь нужно вернуть их в текстовый формат. Либо назначьте диапазону текстовый формат и прощелкайте. Либо напишите в соседнем стобце формулу
=ТЕКСТ(A9;"@")
и протяните. Затем замените исходный диапазон, полученными данными.

Последний раз редактировалось IFRSoff; 13.06.2009 в 14:54.
IFRSoff вне форума Ответить с цитированием
Старый 15.06.2009, 16:59   #8
RGZZ
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 15
По умолчанию

Блин, точно! Я думал насчет формата..
Спасибо большое!
RGZZ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
1. Присвоить переменной значение ячейки, находящейся в ТЕКУЩЕМ ряду в столбце "E" 2.Вопрос по автофильтру Павел-812 Microsoft Office Excel 6 27.07.2011 10:32
PHP(или другой язык): Получить все пары "имя" -> "значение" переданные методом POST KingOfNothing PHP 4 12.04.2009 14:06
настроить при открытии Excel 2003 в окошке "Тип файлов" вывод пункта "Все файлы (*.*)" по умолчанию? Unior Microsoft Office Excel 2 01.03.2009 02:42
"плавают" ячейки таблицы, если она внутри fieldset barbiturat HTML и CSS 1 26.11.2008 14:01
Как скомпилировать программу так, чтобы "все было включено" grenles Общие вопросы Delphi 4 31.07.2008 17:05