Добрый день!
На листе "расчёт" есть таблица в которой я произвожу расчёт. Периодически есть необходимость фильтровать таблицу по названиям поставщиков и продуктов.
Эти названия поставщиков продуктов я часто выбираю на другом листе "BI" в сводных для просмотра ряда характеристик. Что бы не копировать каждый раз названия поставщиков и продуктов записал макрос
Он работает.
Однако с листа "расчёт" макрос получает только первые названия поставщика и товара после заголовка таблицы из ячеек "I7" и "C7".
Нашёл макрос которой находит именно первое видимое значение в отфильтрованной ячейке.
Хочу результат его работы передать в переменную первого макроса, но пока не получается. Пробовал так
однако ругается = Run-time error '1004: Unable to get the SpecialCells property of the Range class
Подскажите пжл что делаю не так?
На листе "расчёт" есть таблица в которой я произвожу расчёт. Периодически есть необходимость фильтровать таблицу по названиям поставщиков и продуктов.
Эти названия поставщиков продуктов я часто выбираю на другом листе "BI" в сводных для просмотра ряда характеристик. Что бы не копировать каждый раз названия поставщиков и продуктов записал макрос
| Код |
|---|
Sub ФильтрыСводных()
Dim nameВТМ As String
nameВТМ = Sheets("расчёт").Range("I7")
Dim nameSKU As String
nameSKU = Sheets("расчёт").Range("C7")
Sheets("BI").Select
ActiveSheet.PivotTables("Сводная таблица8").PivotFields( _
"[prod].[SKU - ВТМ].[SKU - ВТМ]").VisibleItemsList = Array("[prod].[SKU - ВТМ].&[" & nameВТМ & "]")
ActiveSheet.PivotTables("Сводная таблица8").PivotFields( _
"[prod].[SKU - НАИМЕНОВАНИЕ АНАЛОГ].[SKU - НАИМЕНОВАНИЕ АНАЛОГ]").VisibleItemsList = Array("[prod].[SKU - НАИМЕНОВАНИЕ АНАЛОГ].&[" & nameSKU & "]")
ActiveSheet.PivotTables("Сводная таблица3").PivotFields( _
"[product].[SKU - ВТМ].[SKU - ВТМ]").VisibleItemsList = Array("[product].[SKU - ВТМ].&[" & nameВТМ & "]")
End Sub |
Он работает.
Однако с листа "расчёт" макрос получает только первые названия поставщика и товара после заголовка таблицы из ячеек "I7" и "C7".
Нашёл макрос которой находит именно первое видимое значение в отфильтрованной ячейке.
| Код |
|---|
Sub FirstVisibleCell()
With Worksheets("расчёт").AutoFilter.Range
ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
End With
End Sub |
Хочу результат его работы передать в переменную первого макроса, но пока не получается. Пробовал так
| Код |
|---|
Sub Фильтры()
Dim nameВТМ As String
With Worksheets("расчёт").AutoFilter.Range
ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
End With |
Подскажите пжл что делаю не так?
Изменено: - 29.04.2025 13:12:51
(отформатировал код)