对此的任何帮助都非常感谢。我试图设置一个产品按钮列表,并将一个宏附加到每个从切片机中选择产品并应用适当的轴值的宏中,但是下面的代码不能工作。
我创建了一个具有主轴和二级轴的枢轴图。我在图表旁边有一个切片机,这是一个产品清单。由于主轴在某些情况下可能是负值,所以我需要为每个产品的每个轴应用不同的最小值和最大值。我试着录制一个宏,它将运行A.从切片机中选择产品。设置适当的主轴和次轴min和max设置,但是当我尝试运行宏时,它将不能正常工作,换句话说,它不会只选择2D设计并应用轴设置。
如果没有宏,如果我选择另一个产品,轴与最后一个产品保持不变,这会扭曲显示的数字,特别是在主轴上负的时候。
Sub TwoD()
'
' TwoD Macro
'
With ActiveWorkbook.SlicerCaches("Slicer_Module112")
.SlicerItems("2D Design").Selected = True
End With
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.Axes(xlValue, xlSecondary).Select
ActiveChart.Axes(xlValue, xlSecondary).MinimumScale = -500
ActiveChart.Axes(xlValue, xlSecondary).MaximumScale = 900
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MinimumScale = -0.6
End Sub发布于 2022-10-05 12:53:55
你可以试试这样的东西:
Sub Slicer_Filtering(ByVal ItemToFilter As String, ByVal SecondaryAxisMin As Long, _
ByVal SecondaryAxisMax As Long, ByVal PrimaryAxisMin As Long, _
Optional ByVal PrimaryAxisMax As Long)
Dim SlicerName As String
Dim sl As SlicerItem
Dim ChartName As String
ChartName = "Chart 3" 'Update as needed
SlicerName = "Slicer_Module112" 'Update as needed
ThisWorkbook.SlicerCaches(SlicerName).ClearAllFilters
'Filter Only Needed Value
For Each sl In ThisWorkbook.SlicerCaches(SlicerName).SlicerItems
If sl.Name = ItemToFilter Then
sl.Selected = True
Else
sl.Selected = False
End If
Next
ActiveSheet.ChartObjects(ChartName).Activate
'Reset Axes
ActiveChart.Axes(xlValue).MinimumScaleIsAuto = True
ActiveChart.Axes(xlValue).MaximumScaleIsAuto = True
ActiveChart.Axes(xlValue, xlSecondary).MinimumScaleIsAuto = True
ActiveChart.Axes(xlValue, xlSecondary).MaximumScaleIsAuto = True
'Set Axes values
ActiveChart.Axes(xlValue, xlSecondary).MinimumScale = SecondaryAxisMin
ActiveChart.Axes(xlValue, xlSecondary).MaximumScale = SecondaryAxisMax
ActiveChart.Axes(xlValue).MinimumScale = PrimaryAxisMin
If PrimaryAxisMax <> 0 Then ActiveChart.Axes(xlValue).MaximumScale = PrimaryAxisMax
End Sub然后用每个产品所需的不同值为每个按钮分配一个调用。如下所示:
Sub Caller()
Call Slicer_Filtering("2D Design", -500, 900, -0.6)
End Subhttps://stackoverflow.com/questions/73957441
复制相似问题