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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2012, 15:48   #1
Automat
Пользователь
 
Регистрация: 05.04.2012
Сообщений: 18
По умолчанию Hеализировать алгоритм на VBA

Помогите написать код VBA, алгоритм примерно известен

Нужно анализировать весь столбец B на наличие значения "Руководство", Если нашли "Руководство" то проверить есть ли число > 20 в сторбце Q (рядом напротив найденого), Если есть то проверить существует ли група (заданная в коде VBA), Если существует то скопировать значение из столбца F и АА на другую страницу...... И так перебирать весь столбец B на наличие заданих параметров.
Как написать такой цикл ?
Automat вне форума Ответить с цитированием
Старый 05.04.2012, 16:11   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Автофильтр, скопировать видимые строки.
Вернее нужные столбцы видимых строк.
И не надо ничего перебирать.

Код:
Sub tt()
    Sheets(1).AutoFilterMode = 0
    With Sheets(1).[A1].CurrentRegion
        .AutoFilter 2, "Руководство", 1
        .AutoFilter 17, ">20", 1
        .AutoFilter 18, "gr", 1
        .SpecialCells(12).Columns(6).EntireColumn.Copy Sheets(2).[A1]
        .SpecialCells(12).Columns(27).EntireColumn.Copy Sheets(2).[B1]
    End With
    Sheets(1).AutoFilterMode = False
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 05.04.2012 в 16:24.
Hugo121 вне форума Ответить с цитированием
Старый 05.04.2012, 16:56   #3
Automat
Пользователь
 
Регистрация: 05.04.2012
Сообщений: 18
По умолчанию

Hugo121, спасибо за оперативную помощь, работает, а можно както на исходной страничке Sheets(1) по окончанию копирования автоматически отключить автофильтр и вернуть прежний вид данных ?

Последний раз редактировалось Automat; 05.04.2012 в 17:09.
Automat вне форума Ответить с цитированием
Старый 05.04.2012, 17:15   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

А разве не возвращается? Интересно...
Строка Sheets(1).AutoFilterMode = False что делает?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 05.04.2012, 17:35   #5
Automat
Пользователь
 
Регистрация: 05.04.2012
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
А разве не возвращается? Интересно...
Строка Sheets(1).AutoFilterMode = False что делает?
работает, спасибо
Automat вне форума Ответить с цитированием
Старый 05.04.2012, 19:57   #6
Automat
Пользователь
 
Регистрация: 05.04.2012
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Automat Посмотреть сообщение
работает, спасибо
появилась проблема, после выполнения макроса, размер файла из 252 КБ стает 9,75 МБ, как боротся с етим ?
Automat вне форума Ответить с цитированием
Старый 05.04.2012, 20:02   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Давайте свой файл на 252 кб (зажмите в архив) - посмотрим.
Личные данные удалите, оставьте десяток строк, чтоб было что фильтровать.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 05.04.2012, 20:23   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

скальпели уже наточены, будем препарировать... до полного удовлетворения (даже если не будем препарировать лично, то с удовольствием понаблюдаем за действиями профи)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 05.04.2012, 22:34   #9
Automat
Пользователь
 
Регистрация: 05.04.2012
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Давайте свой файл на 252 кб (зажмите в архив) - посмотрим.
Личные данные удалите, оставьте десяток строк, чтоб было что фильтровать.
загрузил файл с фрагментом данных:
http://narod.ru/disk/45310905001.cea...5/111.rar.html
заранее спасибо за помощь
Automat вне форума Ответить с цитированием
Старый 05.04.2012, 23:10   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Нда, что-то мелкомягкие недоделали...
Вроде бы ведь из видимых With Sheets("Звіт").[A1].CurrentRegion выбираем EntireColumn, а выбирается черт те что, аж до 1048523 строки...

Исправил - так лишнего не тянет:
Код:
Sub Выборка_вариант1()
    Sheets("Звіт").AutoFilterMode = 0
    With Sheets("Звіт").[A1].CurrentRegion
        .AutoFilter 2, "Дипл.Пр. Керівництво", 1
        .AutoFilter 17, ">20", 1
        .AutoFilter 24, "СІ_51", 1
        Intersect(Sheets("Звіт").[A1].CurrentRegion, .SpecialCells(12).Columns(6).EntireColumn).Copy Sheets("Викладачі").[M3]       '  тем
        Intersect(Sheets("Звіт").[A1].CurrentRegion, .SpecialCells(12).Columns(27).EntireColumn).Copy Sheets("Викладачі").[L3]      '  викладачів
    End With
    Sheets("Звіт").AutoFilterMode = False     ' выкл фильтр на странице
End Sub
Хотя вероятно правильно - EntireColumn и есть весь столбец... Но тогда почему весь столбец не копируется? А иначе не получилось видимые взять.
Можно ещё перебором строк или массива выбрать, но банально
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 05.04.2012 в 23:13.
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработайте алгоритм методом пошаговой детализации и программу, реализующую этот алгоритм. iamhated Помощь студентам 1 15.01.2012 16:24
Разработайте алгоритм методом пошаговой детализации и программу, реализующую этот алгоритм iamhated Помощь студентам 1 14.01.2012 16:22
создание программы в VBA, реализующей алгоритм получения произведения ряда чисел Mescaline Помощь студентам 0 23.12.2011 23:16
составить программу и алгоритм на языке vba! Маришка бирюкова Microsoft Office Excel 6 19.12.2010 21:56
Как алгоритм перевести в код VBA valerij Microsoft Office Excel 18 29.05.2008 01:32