Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Функция сортировки на VB Excel

9.9K
10 апреля 2007 года
o1ps
51 / / 11.10.2006
Какой функцией можно через Модули (Modules) в VB Excel организовать сортировку столбца по определенному слову.
Допустим столбец состоит из записей : Офис/Квартира/цех/Офис/Дача/Офис.
С Помощью функции(макроса) по заданному слову "Офис" должны остаться только записи, содержащие этот пункт.
Подскажите. Буду очень Благодарен. Спасибо.
263
10 апреля 2007 года
koltaviy
816 / / 16.12.2004
Например так:
 
Код:
..
Selection.AutoFilter Field:=1, Criteria1:="Офис"
..

За разъяснениями - в Help!!
З.Ы.: Научись пользоваться записью макросов - половина вопросов отпадет автоматически!!
9.9K
10 апреля 2007 года
o1ps
51 / / 11.10.2006
Задача что бы выделить любой столбец, в котором содержиться какая-то информация, затем через функции (как например на панели инструментов есть "автосумма" и подобное) задать какое-либо слово, допустим "Офис" и произойдет автосортировка или просто остануться только те записи, содержащие это поле.

То есть через Function ()...End Function задать имя и по нему провести сортировку.
263
10 апреля 2007 года
koltaviy
816 / / 16.12.2004
При чем тут функция, если это процедура.
Функцией это будет, если ты все отфильтрованные записи скопируешь на новое место, как результат выполнения функции!!
Если хочешь задавать критерий фильтрации:
Выделяешь ячейку в нужном столбце и с искомым значением. Потом вызываешь процедуру(как - это уже на чо твоя фантазия горазда):
 
Код:
Public Sub Criteria()
Selection.AutoFilter Field:=1, Criteria1:=Selection.Value
End Sub

Разберись с терминологией перед тем, как ее употреблять - сортировка и фильтрация - это две разные вещи!!
9.9K
11 апреля 2007 года
o1ps
51 / / 11.10.2006
Цитата:

Функцией это будет, если ты все отфильтрованные записи скопируешь на новое место, как результат выполнения функции!!


В Принципе то и требуется :) только записи остануться на том же листе, только начиная с первой строки.

263
11 апреля 2007 года
koltaviy
816 / / 16.12.2004
Ты чо хочешь фильтровать на месте с заменой содержимого?:eek:
Что за задача такая, что ты решил на это пойти.
Разумно все-таки остановиться на предыдущем варианте!
9.9K
13 апреля 2007 года
o1ps
51 / / 11.10.2006
Вот как это делается через макросы :

Код:
Sub Macro1()
Dim ifield As Integer
 
ActiveSheet.AutoFilterMode = False  'выключаем автофильтр
On Error GoTo no_data
Cells(1, ActiveCell.Column).AutoFilter  'включаем автофильтр
On Error GoTo 0
 
With ActiveSheet.AutoFilter
    ifield = ActiveCell.Column - .Range.Column + 1
    If ifield < 1 Or ifield > .Range.Columns.Count Then GoTo no_data
    .Range.AutoFilter field:=ifield, _
    Criteria1:="*" & InputBox("Введите слово для поиска:") & "*"
End With
Exit Sub
no_data:
MsgBox "Нет данных в текущем столбце!"
End Sub


Ну а через функции "Function... end function" как можно сделать данную процедурку?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог