我正在用Excel创建任务日历。 主页是一个年度日历,其中显示了所有的月份和日期。 每个月都有单独的标签来显示任务。他们将根据条件“即将到期”,“今天到期”和“到期”来向年度日历提供颜色。 我想做的是: 如果有人点击月份(由一列单元格说((1月为B2:I7; 2月为j2:I7等)组成),它将进入相应的月份标签。我知道使工作表处于活动状态的所有编码,如果单击数组中的任何单元格(没有长循环列表),我需要的是“触发”。
答案 0 :(得分:0)
在工作表的代码模块上,您可以通过Intersect
检查选择项是否在日历的总范围内,然后使用多重范围的Range.Area
进行定义月号:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RelevantArea As Range
Dim Calendar As Range
Dim i As Long
Set Calendar = Me.Range _
("B03:H10,J03:P10,R03:X10," & _
"B12:H19,J12:P19,R12:X19," & _
"B21:H28,J21:P28,R21:X28," & _
"B30:H37,J30:P37,R30:X37")
Set RelevantArea = Intersect(Target, Calendar)
If Not RelevantArea Is Nothing Then
For i = 1 To Calendar.Areas.Count
If Not Intersect(Target, Calendar.Areas(i)) Is Nothing Then
MsgBox "Month " & i & " selected."
'Me.Parent.Sheets(1 + i).Activate
Exit For
End If
Next i
End If
End Sub