使用VBA在Excel工作表中动态选择单元格

时间:2017-01-16 15:24:17

标签: excel-vba vba excel

我正在创建一个月的日历。用户可以选择他们想要的月份的年份。当用户选择创建月份时,我想选择该月份的所有工作日并为其指定一个范围。如何为选定的月份和年份选择一系列单元格并为其指定范围?

这是录制的宏(2016年1月),但我不确定如何以编程方式创建。我无法重复使用它,因为如果用户选择不同的月份或年份,那么我将不知道哪些行列包含工作日。

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)

enter image description here

1 个答案:

答案 0 :(得分:0)

如果要将所选范围分配到变量Test,可以使用以下命令:

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

我们无法帮助您选择基于其他单元格的特定单元格,而无需有关工作簿结构的更多信息。