在特定工作表和循环中的button之间切换

我努力在VBA中创build我的第一个macros,我试图做出一个简单的macros,它将在每一分钟切换button来呈现不同的数据。 现在我真的很沮丧,因为每次我改变的东西,我收到不同的错误,肯定我有工作表的引用问题,我想select。 目前我得到错误“循环没有做”,当我删除循环,我得到编译错误“预计结束与”。

请在下面find我的“工作”,请让我如何使其工作。

Public Sub Switch() Do For Each ws In ThisWorkbook.Worksheets ControlBoard.Activate With ActiveWorkbook.SlicerCaches("Slicer_Project1") .SlicerItems("XX").Selected = True .SlicerItems("YY").Selected = False .SlicerItems("ZZ").Selected = False Application.Wait Now("00:01:00") With ActiveWorkbook.SlicerCaches("Slicer_Project1") .SlicerItems("XX").Selected = False .SlicerItems("YY").Selected = True .SlicerItems("ZZ").Selected = False Application.Wait Now("00:01:00") End With With ActiveWorkbook.SlicerCaches("Slicer_Project1") .SlicerItems("XX").Selected = False .SlicerItems("YY").Selected = False .SlicerItems("ZZ").Selected = True Application.Wait Now("00:01:00") End With Loop End Sub 

好吧,现在我改变了一下,我得到运行时错误13(types不匹配),我在第一行debugging – Application.Wait Now(“00:01:00”)

 Public Sub Switch() Dim DashBoard As Sheet3 Do With ActiveWorkbook.SlicerCaches("Slicer_Project1") .SlicerItems("XX").Selected = True .SlicerItems("YY").Selected = False .SlicerItems("ZZ").Selected = False Application.Wait Now("00:01:00") End With With ActiveWorkbook.SlicerCaches("Slicer_Project1") .SlicerItems("XX").Selected = False .SlicerItems("YY").Selected = True .SlicerItems("ZZ").Selected = False Application.Wait Now("00:01:00") End With With ActiveWorkbook.SlicerCaches("Slicer_Project1") .SlicerItems("XX").Selected = False .SlicerItems("YY").Selected = False .SlicerItems("ZZ").Selected = True Application.Wait Now("00:01:00") End With Loop End Sub 

我已经通过添加+ TimeValue Application.Wait Now + TimeValue(“00:01:00”)解决了types不匹配的问题,但是切片器并不像我想的那样工作。 它开始(“XX”)是真实的,但它进一步在滴答(“YY”)真正和(“XX”)仍然如此,你能帮我解决它吗?

好的,我已经通过将True语句放在第一行来解决这个问题,它不时冻结,但是它可以工作,如果可以添加closures键,可以避免esc + esc退出吗?

 Public Sub Switch() Dim DashBoard As Sheet3 Do With ActiveWorkbook.SlicerCaches("Slicer_Project1") .SlicerItems("XX").Selected = True .SlicerItems("YY").Selected = False .SlicerItems("ZZ").Selected = False Application.Wait Now + TimeValue("00:00:10") End With With ActiveWorkbook.SlicerCaches("Slicer_Project1") .SlicerItems("YY").Selected = True .SlicerItems("XX").Selected = False .SlicerItems("ZZ").Selected = False Application.Wait Now + TimeValue("00:00:10") End With With ActiveWorkbook.SlicerCaches("Slicer_Project1") .SlicerItems("ZZ").Selected = True .SlicerItems("XX").Selected = False .SlicerItems("YY").Selected = False Application.Wait Now + TimeValue("00:00:10") End With Loop End Sub