Создание динамических ссылок в календаре Excel - PullRequest
0 голосов
/ 01 ноября 2019

Доброе утро, ребята из StackOverflow. У меня вопрос к Excel VBA. У меня есть макрос, который создает для меня календарь, основанный на текущем дне месяца, и он выкладывает все в ваш типичный формат календаря. Пожалуйста, ознакомьтесь с приведенным ниже кодом для моей текущей настройки:

Sub Calendar()

    Dim cDater, endDater, tempDater As Date
    Dim wDay As Variant
    Dim i, ColNum, dInMonth, cDayNum, dRange, rNum As Integer

    cDater = Date 'NORMAL
    'cDater = DateValue("11/24/2019") 'TESTING
    dRange = 30
    dInMonth = Day(DateSerial(Year(cDater), Month(cDater) + 1, 1) - 1)
    endDater = cDater + (dRange - 1)
    rNum = 4

    With Sheets("Calendar")
        .Range("B4:H9").Clear
        .Range("B4:H9").HorizontalAlignment = xlLeft
        .Range("B4:H9").VerticalAlignment = xlTop
        For i = 0 To (dRange - 1) 'NORMAL
        'For i = 0 To 3 'TESTING
            tempDater = cDater + i
            cDayNum = Day(tempDater)
            ColNum = (Weekday(tempDater, vbSunday) Mod 8) + 1
            .Cells(rNum, ColNum).Select
            .Cells(rNum, ColNum).Value = cDayNum
            .Cells(rNum, ColNum).NumberFormat = "mm/dd"
            If ColNum = 8 Then rNum = rNum + 1
        Next
    End With

End Sub

Мой вопрос таков: после создания календаря можно ли создать динамическую ссылку из каждой ячейки для получения информации дляэти конкретные даты? Например, если я нажимаю на ячейку с определенной датой, я хочу, чтобы Excel автоматически составил список событий, происходящих в этот день. Если для Y людей в день происходит X событий, я бы хотел, чтобы результат выглядел примерно так:

Основная группа: 10

PersonA: 2

Человек B: 3

Человек C: 5

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

Спасибо!

...