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