我正在尝试构建一个仪表板,该仪表板可以基于“月份选择器”来更新详细信息。我有一个使用公式的命名范围:
=OFFSET('Labor Data'!$B$1,MATCH(MATCH(Dashboard!$T$3,Dashboard!$C$3:$N$3,0)-1,'Labor Data'!$A:$A),0,MAX(IF('Labor Data'!$A:$A=MATCH(Dashboard!$T$3,Dashboard!$C$3:$N$3,0),ROW('Labor Data'!$A:$A)))-MATCH(MATCH(Dashboard!$T$3,Dashboard!$C$3:$N$3,0),'Labor Data'!$A:$A,0)+1,5)
我知道它有效。它正确地突出显示了我在数据工作表中期望的范围。但是,当我将范围的名称插入“图表数据范围”字段时,“水平轴标签”会解析,并且当我更改月份时不会更改。有什么方法可以使水平轴保持动态?
答案 0 :(得分:0)
我放弃了指定的范围,并将解决方案写入VBA,当下拉框的值更改时触发该解决方案。
Private Sub Worksheet_Change(按有效期的每月有效期)
Set dash = Worksheets("Dashboard")
Set labor = Worksheets("Labor Data")
setMonth = dash.Range("T3").Value
If Not Intersect(monthSel, Range("T3")) Is Nothing Then
monthNum = Application.WorksheetFunction.Match(setMonth, dash.Range("C3:N3"), 0)
Set dynRangeTop = labor.Range("A:A").Find(monthNum, LookIn:=xlValues, LookAt:=xlWhole)
Set dynRangeBot = labor.Range("A:A").Find(monthNum, LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlPrevious)
Set chartRng = labor.Range("C" & dynRangeTop.Row & ":" & "G" & dynRangeBot.Row)
dash.ChartObjects("MonthSum").Chart.SetSourceData Source:=chartRng, PlotBy:=xlColumns
End If
End Sub