Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
Excel VBA脚本检测单元格中的值,使工作表闪烁,直到单击为止_Excel_Vba - Fatal编程技术网

Excel 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

我已经创建了一个仪表板,用户将在其中复制和粘贴日志。仪表板将仅使用公式对多张表上的数据进行一些分析

我想设置一个VBA脚本,当公式在B25中变为真时,工作表将从绿色变为红色返回第四行,直到用户单击“工作表”选项卡并结束循环。我是VBA新手,从宏中提取了一些代码进行尝试。以下是我所拥有的:

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
宏来控制闪烁。