Поиск значений в сводной таблице и копирование в другой лист - PullRequest
0 голосов
/ 09 апреля 2019

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

Мне нужно найти 17 отдельных строк в сводной таблице и, если строка найдена, скопировать все ячейки под этой строкой в ​​другую вкладку, которая рассчитывает стоимость. Эта функция поиска и копирования - вот где я застрял.

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

Цените любые указания, чтобы начать меня ...

1 Ответ

0 голосов
/ 10 апреля 2019

Я основываюсь на этом коде, который вы разместили в своем комментарии.Я нашел желаемый диапазон, используя:

  1. Первая строка данных под заголовком (предполагается, что это строка 4)
  2. Последняя строка данных (рассчитывается путем нахождения самой большой строки, в которой есть ячейка с данными)
  3. Столбец совпадения названия проекта

Sub TRM0000()</p>

<code>Dim Ws As Worksheet
Dim firstRow As Long
Dim lastRow As Long
Dim column As Long
Dim Calc As Range

Set Ws = Sheets("PivotTable")

firstRow = 4
lastRow = Ws.Cells.Find(What:="*", SearchDirection:=xlPrevious).Row
column = Ws.Range("C3:Z3").Find(What:="TRM-0000", LookIn:=xlValues, LookAt:=xlWhole).column

Set Calc = Ws.Range(Ws.Cells(firstRow, column), Ws.Cells(lastRow, column))

Calc.Copy
Sheets("Cost Calc").Range("B5").PasteSpecial xlValues

End Sub
</code>

Это должно быть решением для этого конкретного названия проекта.Тем не менее, вы сказали, что у вас есть 17!Вместо того, чтобы воссоздавать этот код для каждого, я бы порекомендовал сохранить 17 названий проектов (может быть на вкладке рабочей книги или перечисленных в коде VBA), создать цикл for для запуска по этому списку и сделать заголовок и вывод проектадинамические ссылки на диапазон в коде VBA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...