Часть моего обновления панели мониторинга включает фильтрацию таблицы запросов 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