В Excel у меня есть набор данных, который меняется ежедневно, мы будем называть его "daily_data".

Мне нужно скопировать и вставить эти данные в соответствующие поля дня недели. Это достаточно легко сделать вручную, но у меня есть несколько таких отчетов, которые я запускаю ежедневно.

Я пытаюсь автоматизировать процесс.

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

Это сэкономило бы мне кучу времени, если бы я мог пропустить шаг копирования и вставлять все свои поля daily_data в соответствующий день на ежедневной основе.

1 ответ1

0

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

Давайте предположим, что макет показан здесь:

Private Sub Workbook_Open()
    columnOffset = 2
    dow = Weekday(Now, vbMonday)
    col = dow + columnOffset
    ' If data already exists, don't do anything
    If Cells(2, col).Value = "" Then
        ' Copy the first column except the first cell
        Intersect(Columns(1), UsedRange.Offset(1)).Copy Cells(2, col)
    End If
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .