vik313
Дата: Среда, 08.08.2018, 13:37 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Здравствуйте! Имеем таблицу, в которой включен фильтр по колонкам L,UCH,U Задача добавить фильтрацию по колонке K, взяв данные для фильтрации с листа KV. Данные на листе KV располагаются в 1 столбце, начиная с ячейки А1 После фильтрации нужно в столбец KL вставить коэффициент по всем отфильтрованным строкам, который мы берем с листа KV ячейки B1. Пример приложил. Спасибо!
Здравствуйте! Имеем таблицу, в которой включен фильтр по колонкам L,UCH,U Задача добавить фильтрацию по колонке K, взяв данные для фильтрации с листа KV. Данные на листе KV располагаются в 1 столбце, начиная с ячейки А1 После фильтрации нужно в столбец KL вставить коэффициент по всем отфильтрованным строкам, который мы берем с листа KV ячейки B1. Пример приложил. Спасибо! vik313
Ответить
Сообщение Здравствуйте! Имеем таблицу, в которой включен фильтр по колонкам L,UCH,U Задача добавить фильтрацию по колонке K, взяв данные для фильтрации с листа KV. Данные на листе KV располагаются в 1 столбце, начиная с ячейки А1 После фильтрации нужно в столбец KL вставить коэффициент по всем отфильтрованным строкам, который мы берем с листа KV ячейки B1. Пример приложил. Спасибо! Автор - vik313 Дата добавления - 08.08.2018 в 13:37
InExSu
Дата: Вторник, 14.08.2018, 00:14 |
Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация:
96
±
Замечаний:
0% ±
Excel 2010, 365
Привет!
[vba]
Код
Option Explicit Sub InExSu() Фильтр_Массивом _ Диапазон_для_Фильтра(), Масcив_1d_c_листа( _ Диапазон_для_Массива()) End Sub Private Function Диапазон_для_Массива() As Range With Worksheets("KV") Set Диапазон_для_Массива = .Range(.Cells(1, 1), .Cells(1, 1).End(xlDown)) End With End Function Private Function Масcив_1d_c_листа(rng As Range) As Variant Dim arr_1D() As String ' иначе не фильтрует ReDim arr_1D(1 To rng.Count) Dim el As Range For Each el In rng arr_1D(el.Row) = el.Value Next Масcив_1d_c_листа = arr_1D() End Function Private Sub Фильтр_Массивом(rng As Range, arr_1D As Variant) rng.AutoFilter Field:=8, Criteria1:=arr_1D, Operator:=xlFilterValues End Sub Private Function Диапазон_для_Фильтра() As Range Dim ws As Worksheet Set ws = Worksheets("Список") With ws If .FilterMode Then .ShowAllData Set Диапазон_для_Фильтра = .Cells(3, 1).CurrentRegion End With End Function
[/vba]
Привет!
[vba]
Код
Option Explicit Sub InExSu() Фильтр_Массивом _ Диапазон_для_Фильтра(), Масcив_1d_c_листа( _ Диапазон_для_Массива()) End Sub Private Function Диапазон_для_Массива() As Range With Worksheets("KV") Set Диапазон_для_Массива = .Range(.Cells(1, 1), .Cells(1, 1).End(xlDown)) End With End Function Private Function Масcив_1d_c_листа(rng As Range) As Variant Dim arr_1D() As String ' иначе не фильтрует ReDim arr_1D(1 To rng.Count) Dim el As Range For Each el In rng arr_1D(el.Row) = el.Value Next Масcив_1d_c_листа = arr_1D() End Function Private Sub Фильтр_Массивом(rng As Range, arr_1D As Variant) rng.AutoFilter Field:=8, Criteria1:=arr_1D, Operator:=xlFilterValues End Sub Private Function Диапазон_для_Фильтра() As Range Dim ws As Worksheet Set ws = Worksheets("Список") With ws If .FilterMode Then .ShowAllData Set Диапазон_для_Фильтра = .Cells(3, 1).CurrentRegion End With End Function
[/vba]
InExSu
Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
Сообщение отредактировал InExSu - Вторник, 14.08.2018, 00:41
Ответить
Сообщение Привет!
[vba]
Код
Option Explicit Sub InExSu() Фильтр_Массивом _ Диапазон_для_Фильтра(), Масcив_1d_c_листа( _ Диапазон_для_Массива()) End Sub Private Function Диапазон_для_Массива() As Range With Worksheets("KV") Set Диапазон_для_Массива = .Range(.Cells(1, 1), .Cells(1, 1).End(xlDown)) End With End Function Private Function Масcив_1d_c_листа(rng As Range) As Variant Dim arr_1D() As String ' иначе не фильтрует ReDim arr_1D(1 To rng.Count) Dim el As Range For Each el In rng arr_1D(el.Row) = el.Value Next Масcив_1d_c_листа = arr_1D() End Function Private Sub Фильтр_Массивом(rng As Range, arr_1D As Variant) rng.AutoFilter Field:=8, Criteria1:=arr_1D, Operator:=xlFilterValues End Sub Private Function Диапазон_для_Фильтра() As Range Dim ws As Worksheet Set ws = Worksheets("Список") With ws If .FilterMode Then .ShowAllData Set Диапазон_для_Фильтра = .Cells(3, 1).CurrentRegion End With End Function
[/vba]
Автор - InExSu Дата добавления - 14.08.2018 в 00:14
vik313
Дата: Среда, 15.08.2018, 23:10 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Макрос работает, все как надо. По-поводу второй части вопроса После фильтрации нужно в столбец KL вставить коэффициент по всем отфильтрованным строкам, который мы берем с листа KV ячейки B1. Подскажите как реализовать
Макрос работает, все как надо. По-поводу второй части вопроса После фильтрации нужно в столбец KL вставить коэффициент по всем отфильтрованным строкам, который мы берем с листа KV ячейки B1. Подскажите как реализовать vik313
Ответить
Сообщение Макрос работает, все как надо. По-поводу второй части вопроса После фильтрации нужно в столбец KL вставить коэффициент по всем отфильтрованным строкам, который мы берем с листа KV ячейки B1. Подскажите как реализовать Автор - vik313 Дата добавления - 15.08.2018 в 23:10
InExSu
Дата: Четверг, 16.08.2018, 13:38 |
Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация:
96
±
Замечаний:
0% ±
Excel 2010, 365
Пример во вложении. Обновил вложение.
Пример во вложении. Обновил вложение. InExSu
Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
Сообщение отредактировал InExSu - Четверг, 16.08.2018, 14:15
Ответить
Сообщение Пример во вложении. Обновил вложение. Автор - InExSu Дата добавления - 16.08.2018 в 13:38
vik313
Дата: Четверг, 16.08.2018, 13:59 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Все работает, но после каждого запуска макроса происходит обновление фильтрации А как бы сделать фильтрацию именно как по 1 пункту вопроса - В таблице уже включен фильтр по колонкам L,UCH,U, дополнительно нужно добавить к фильтрацию по колонке K....
Все работает, но после каждого запуска макроса происходит обновление фильтрации А как бы сделать фильтрацию именно как по 1 пункту вопроса - В таблице уже включен фильтр по колонкам L,UCH,U, дополнительно нужно добавить к фильтрацию по колонке K.... vik313
Сообщение отредактировал vik313 - Четверг, 16.08.2018, 14:16
Ответить
Сообщение Все работает, но после каждого запуска макроса происходит обновление фильтрации А как бы сделать фильтрацию именно как по 1 пункту вопроса - В таблице уже включен фильтр по колонкам L,UCH,U, дополнительно нужно добавить к фильтрацию по колонке K.... Автор - vik313 Дата добавления - 16.08.2018 в 13:59