Excel VBA脚本检测单元格中的值,使工作表闪烁,直到单击为止
我已经创建了一个仪表板,用户将在其中复制和粘贴日志。仪表板将仅使用公式对多张表上的数据进行一些分析 我想设置一个VBA脚本,当公式在B25中变为真时,工作表将从绿色变为红色返回第四行,直到用户单击“工作表”选项卡并结束循环。我是VBA新手,从宏中提取了一些代码进行尝试。以下是我所拥有的:Excel VBA脚本检测单元格中的值,使工作表闪烁,直到单击为止,excel,vba,Excel,Vba,我已经创建了一个仪表板,用户将在其中复制和粘贴日志。仪表板将仅使用公式对多张表上的数据进行一些分析 我想设置一个VBA脚本,当公式在B25中变为真时,工作表将从绿色变为红色返回第四行,直到用户单击“工作表”选项卡并结束循环。我是VBA新手,从宏中提取了一些代码进行尝试。以下是我所拥有的: Sub Test() If Range("B25").Value = "TRUE" Then Do Until Sheets("Dilutions").Activate With ActiveWorkbo
Sub Test()
If Range("B25").Value = "TRUE" Then
Do Until Sheets("Dilutions").Activate
With ActiveWorkbook.Sheets("Dilutions").Tab
.ThemeColor = xlThemeColorAccent3
.TintAndShade = -0.249977111117893
End With
Application.Wait (Now + #12:00:01 AM#)
With ActiveWorkbook.Sheets("Dilutions").Tab
.ThemeColor = xlThemeColorAccent2
.TintAndShade = -0.249977111117893
End With
Application.Wait (Now + #12:00:01 AM#)
Loop
End If
End Sub
当运行B25中为TRUE的脚本时,工作表选项卡不会更改颜色。我的代码没有收到任何错误消息,所以我不知道从哪里开始故障排除。我已确保在测试宏时没有选择“稀释”表,并且B25的评估结果为真
在这方面的任何帮助都是非常受欢迎的。我会继续玩这个/如果我找到解决方案,我会跟进。谢谢大家! 在这些需求的过程中,您可能会遇到更多的问题,但是从工作表的更改事件开始工作是一个好的开始 在VBE中,转到包含要跟踪的单元格的工作表,然后下拉代码顶部的框以选择“工作表”,然后下拉左侧的框并选择“更改” 这将在该工作表的VBA代码中创建一个名为
工作表\u Change()
这有一个名为Target
的参数,默认情况下,该参数加载的Range
具有导致该子例程启动的change
。要检测它是哪个单元格,可以使用INTERSECT
:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B25")) Is Nothing Then
If Target.Value = "True" Then Call Test
End if
End Sub
因此,这里我们检测哪个单元格发生了变化,然后如果它是B25
,并且值是True
,我们调用测试子例程
在您的Test()
子例程中,您可以取出引用B25
的行,因为我们在工作表\u Change()
事件子例程中进行检测
一旦你得到这个平方,Application.OnTime方法将允许你设置一个调用宏的时间表(比如从当前时间算起1秒),然后宏将切换颜色,但这是下一个障碍。第一个是从工作表更改中触发此事件 在这些需求的过程中,您可能会遇到更多的问题,但是从工作表的更改事件开始工作是一个好的开始 在VBE中,转到包含要跟踪的单元格的工作表,然后下拉代码顶部的框以选择“工作表”,然后下拉左侧的框并选择“更改” 这将在该工作表的VBA代码中创建一个名为
工作表\u Change()
这有一个名为Target
的参数,默认情况下,该参数加载的Range
具有导致该子例程启动的change
。要检测它是哪个单元格,可以使用INTERSECT
:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B25")) Is Nothing Then
If Target.Value = "True" Then Call Test
End if
End Sub
因此,这里我们检测哪个单元格发生了变化,然后如果它是B25
,并且值是True
,我们调用测试子例程
在您的Test()
子例程中,您可以取出引用B25
的行,因为我们在工作表\u Change()
事件子例程中进行检测
一旦你得到这个平方,Application.OnTime方法将允许你设置一个调用宏的时间表(比如从当前时间算起1秒),然后宏将切换颜色,但这是下一个障碍。第一个是从工作表更改中触发此事件 您可能需要一个计算事件宏来检测B25公式操作的结果,以及一些
OnTime
宏来控制闪烁。您可能需要一个计算事件宏来检测B25公式操作的结果,以及一些OnTime
宏来控制闪烁。