Динамический выбор ячеек на листе Excel с помощью VBA

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

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

range( _
    "C9:D9,E9:F9,G9:H9,I9:J9,K9:L9,C11:D11,E11:F11,G11:H11,I11:J11,K11:L11,C13:D13,E13:F13,G13:H13,I13:J13,K13:L13,C15:D15,E15:F15,G15:H15,I15:J15,K15:L15,C17:D17,E17:F17" _
    ).Select
range("E17").Activate
ActiveWorkbook.Names.Add Name:="Test", RefersToR1C1:= _
    "=PTO!R9C3,PTO!R9C5,PTO!R9C7,PTO!R9C9,PTO!R9C11,PTO!R11C3,PTO!R11C5,PTO!R11C7,PTO!R11C9,PTO!R11C11,PTO!R13C3,PTO!R13C5,PTO!R13C7,PTO!R13C9,PTO!R13C11,PTO!R15C3,PTO!R15C5,PTO!R15C7,PTO!R15C9,PTO!R15C11,PTO!R17C3,PTO!R17C5"

—- Мой Пример Кода—-

For x = 1 to 42
    ' Determine where the 1st day falls
    ' Is it a weekday? Add my coordinates to an array so I can create a named range later.
Next x

CreateNamedRange(weekdayArray)

Введите описание изображения здесь

1 ответ

  1. Если вы хотите назначить выбранный диапазон переменнойTest, вы можете использовать следующую команду:

    ActiveWorkbook.Names.Add Name:="Test", RefersTo:="=" & ActiveSheet.Name & "!" & Selection.Address
    

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