Задать диапазон для столбца таблицы после автофильтрации, Excel VBA - PullRequest
0 голосов
/ 12 февраля 2019

Часть моего обновления панели мониторинга включает фильтрацию таблицы запросов ODBC для отображения только определенных проектов, а затем копирование этих идентификаторов проектов на другую вкладку в той же книге.Поскольку порядок проектов и результаты фильтрации меняются при каждом обновлении запроса, мне трудно определить диапазон идентификаторов проектов для копирования.

Я попробовал приведенный ниже код, который приводит к копированию только первого значения в таблице запросов, скопированного в каждую строку таблицы отображения.Я также пытался ссылаться на диапазон через ссылки на ячейки вместо ссылок на таблицы, что привело к тому же результату.

Public Sub EPC_test()

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ActiveWorkbook
Set ws = wb.Sheets("projects_master")

   'filter query table to show qualifying projects
       Set ws = wb.Sheets("projects_master")
       Dim i As Integer, lo As ListObject
        Set lo = wb.Sheets("projects_master").ListObjects(1) 'lo = query table


       i = Application.WorksheetFunction.Match("Display Tab?", wb.Sheets("projects_master").Range("A1:ZZ1"), 0)

       lo_PM.Range.AutoFilter Field:=i, Criteria1:="1"

  'update range with qualifying project IDs
       Set ws_m = wb.Sheets("projects_master") 
        Set ws_BP = wb.Sheets("Display") 

    Set range1 = ws_m.Range("projects_master[ID]").Rows.SpecialCells(xlCellTypeVisible)

    Set range2 = ws_BP.Range("Display[ID]") 

    'copy values from query to display
          range2.Value = range1.Value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...