В поисках макроса для автоматизации вставки по листам - PullRequest
0 голосов
/ 09 ноября 2019

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

Например, это таблица данных:

data sheet

Каждый день дата в А1 меняется, как и данные в таблице. Каждая категория (леденцы, леденцы на палочке) имеет свой собственный справочный лист.

Справочные листы выглядят следующим образом:

Справочный лист твердых конфет hard candy sheet

Справочный лист Lolipops lolipop sheet

Справочный лист Gumdops gumdrops sheet

(зеленая полоса - текущий день)

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

Спасибоочень сильно

1 Ответ

0 голосов
/ 10 ноября 2019

Это руководство не полный ответ - псевдокод и английский смешанный

Dim DayBk as WorkBook, DaySht as Worksheet, xBk as WorkBook

Set DayBk = ThisWorkBook  ' Presuming this code is added to the edited daily workbook
Set DaySht = DayBk.ActiveSheet ' Presuming the ActiveSheet is where the Daily data is stored
For Each Row in DaySht.UsedRange.Rows ' or use a specific range
 .. if Row is 3 (Hard Candy) then
       Set xBk = Workbooks.Open("Path to Candy WorkBook")
    End If
 .. if Row is 4 (Lollipops) then
       Set xBk = Workbooks.Open("Path to Lollipops WorkBook")
    End If
 .. if Row is 5 (GumDrops) then
       Set xBk = Workbooks.Open("Path to GumDrops WorkBook")
    End If
 .. For xCol = 2 to 8  ' 2 = B 8 = H
       xVal = xCel.Offset(0,xCol-1)
       ' Now xVal has a Cell Value from the Daily Sheet
       ' You need to figure out where to put it in the Long Term Storage Workbook
       xBk.ActiveSheet.Range(???,???).Value = xVal
    Next xCol
Next Row

Вам еще многое предстоит сделать, но это только начало

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