Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在特定工作表和循环中的按钮之间切换_Vba_Excel - Fatal编程技术网

Vba 在特定工作表和循环中的按钮之间切换

Vba 在特定工作表和循环中的按钮之间切换,vba,excel,Vba,Excel,我正在努力用VBA创建我的第一个宏,我尝试制作一个简单的宏,它会在每分钟切换按钮以显示不同的数据。 现在我真的很沮丧,因为每次我改变一些东西时,我都会收到不同的错误,我肯定会对我想要选择的工作表的引用产生问题。当前我得到错误“loopwithout do”,当我删除循环时,我得到编译错误“expected end with” 请在下面找到我的“工作”,并告诉我如何让它工作 Public Sub Switch() Do For Each ws In ThisWorkbook.Worksheets

我正在努力用VBA创建我的第一个宏,我尝试制作一个简单的宏,它会在每分钟切换按钮以显示不同的数据。 现在我真的很沮丧,因为每次我改变一些东西时,我都会收到不同的错误,我肯定会对我想要选择的工作表的引用产生问题。当前我得到错误“loopwithout do”,当我删除循环时,我得到编译错误“expected end with”

请在下面找到我的“工作”,并告诉我如何让它工作

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(类型不匹配),我在第一行得到调试-Application.Wait now(“00:01:00”)

我通过添加+TimeValue解决了类型不匹配问题 应用程序。立即等待+时间值(“00:01:00”) 但切片机没有按我的要求运行。它让我在一开始(“XX”)是真的,但进一步说(“YY”)是真的,而且(“XX”)仍然是真的,你能帮我解决它吗

好的,我已经解决了这个问题,在第一行放上了True语句,它有时是冻结的,但它是有效的,如果可以添加关闭键,可以让我知道,以避免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

欢迎来到堆栈溢出!为了帮助人们回答您的问题,您需要更具体地说明错误。请在你的帖子中加入你从你的文章中得到的确切错误(最好使用复制+粘贴来避免抄写错误)。你说你得到了不同的错误。因此,您知道可能存在不止一个错误。。。。为什么要让我们猜出您遇到了哪些错误?根据我的看法,您正在尝试自动更新切片器以更正错误?我正在尝试在按钮之间切换,因此每一分钟都会更改仪表板上的投影数据。欢迎使用堆栈溢出!为了帮助人们回答您的问题,您需要更具体地说明错误。请在你的帖子中加入你从你的文章中得到的确切错误(最好使用复制+粘贴来避免抄写错误)。你说你得到了不同的错误。因此,您知道可能存在不止一个错误。。。。为什么你们要让我们猜出你们遇到了哪些错误?根据我的看法,你们正在尝试自动更新切片器以纠正错误?我正在尝试在按钮之间切换,所以每一分钟都会更改仪表板上的投影数据。
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