Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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_Timer - Fatal编程技术网

VBA中的两个过程

VBA中的两个过程,vba,excel,timer,Vba,Excel,Timer,首先,我应该说我在VBA方面没有相关经验,但我急需用excel制作一个计时器。我已经设法创建了计时器的停止和启动按钮。但我有20个不同的计时器,有开始和停止按钮。我想创建一个按钮,将自动启动所有定时器,同时让我停止一个单独的定时器 我已经生成了以下代码来启动和停止它们。但当我停止其中一个计时器时,我得到了以下错误:“运行时错误'1004':对象应用程序的方法'onTime'失败 两个启动和停止按钮的代码为: Sub startTimer27() Application.OnTime Now +

首先,我应该说我在VBA方面没有相关经验,但我急需用excel制作一个计时器。我已经设法创建了计时器的停止和启动按钮。但我有20个不同的计时器,有开始和停止按钮。我想创建一个按钮,将自动启动所有定时器,同时让我停止一个单独的定时器

我已经生成了以下代码来启动和停止它们。但当我停止其中一个计时器时,我得到了以下错误:“运行时错误'1004':对象应用程序的方法'onTime'失败

两个启动和停止按钮的代码为:

Sub startTimer27()
Application.OnTime Now + TimeValue("00:00:01"), "Increment_count27"
End Sub

Sub Increment_count27()
Range("B2").Value = Range("B2") + 1
Range("B11").Value = Range("B11") + 1
Range("B19").Value = Range("B19") + 1
Range("B25").Value = Range("B25") + 1
Range("B33").Value = Range("B33") + 1
startTimer27
End Sub

Sub stopTimer27()
Application.OnTime Now + TimeValue("00:00:01"), "Increment_count27", Schedule:=False
End Sub

您是否考虑过使用全局变量保存当前时间值

Sub startTimer27()
starttime = Now
'MsgBox("The timer is running.")
End Sub

Sub stopTimer27()
timetaken = Now - starttime
MsgBox ("The time elapsed is " & Hour(timetaken) & ":" & Minute(timetaken) & ":" & Second(timetaken))
End Sub
当然,以你的例子来说,它更像:

Public starttime(1 To 20) As Date
Sub cvbstartTimer27()
For i = 1 To 20
    starttime(i) = Now
Next
End Sub

如果您需要特别地停止它,那么您也必须给它一个布尔值,当计时器运行时为true,停止时为false。缺少此值并不意味着您的代码是错误的。

您考虑过使用全局变量保存当前时间值吗

Sub startTimer27()
starttime = Now
'MsgBox("The timer is running.")
End Sub

Sub stopTimer27()
timetaken = Now - starttime
MsgBox ("The time elapsed is " & Hour(timetaken) & ":" & Minute(timetaken) & ":" & Second(timetaken))
End Sub
当然,以你的例子来说,它更像:

Public starttime(1 To 20) As Date
Sub cvbstartTimer27()
For i = 1 To 20
    starttime(i) = Now
Next
End Sub

如果您需要特别地停止它,那么您也必须给它一个布尔值,当计时器运行时为true,停止时为false。缺少此值并不意味着您的代码是错误的。

您考虑过使用全局变量保存当前时间值吗

Sub startTimer27()
starttime = Now
'MsgBox("The timer is running.")
End Sub

Sub stopTimer27()
timetaken = Now - starttime
MsgBox ("The time elapsed is " & Hour(timetaken) & ":" & Minute(timetaken) & ":" & Second(timetaken))
End Sub
当然,以你的例子来说,它更像:

Public starttime(1 To 20) As Date
Sub cvbstartTimer27()
For i = 1 To 20
    starttime(i) = Now
Next
End Sub

如果您需要特别地停止它,那么您也必须给它一个布尔值,当计时器运行时为true,停止时为false。缺少此值并不意味着您的代码是错误的。

您考虑过使用全局变量保存当前时间值吗

Sub startTimer27()
starttime = Now
'MsgBox("The timer is running.")
End Sub

Sub stopTimer27()
timetaken = Now - starttime
MsgBox ("The time elapsed is " & Hour(timetaken) & ":" & Minute(timetaken) & ":" & Second(timetaken))
End Sub
当然,以你的例子来说,它更像:

Public starttime(1 To 20) As Date
Sub cvbstartTimer27()
For i = 1 To 20
    starttime(i) = Now
Next
End Sub


如果您需要特别地停止它,那么您也必须给它一个布尔值,当计时器运行时为true,停止时为false。缺少此值并不意味着您的代码是错误的。

有一个包含所有计时器名称和“所有计时器”的下拉列表“,有两个按钮链接到两个函数-启动和停止,以定时器启动名称的参数(sTimer作为字符串)为例,下拉菜单是什么意思?”?你能详细说明一下吗?数据验证,设置为List并为计时器名称提供一个范围,然后函数将被传递到包含下拉列表的cell vaue谢谢你的回答。我很感激。有一个包含所有计时器名称和“所有计时器”的下拉列表,有两个按钮链接到两个功能-启动和停止,以计时器启动名称的参数(以字符串形式显示的计时器)为例。下拉列表是什么意思?你能详细说明一下吗?数据验证,设置为List并为计时器名称提供一个范围,然后函数将被传递到包含下拉列表的cell vaue谢谢你的回答。我很感激。有一个包含所有计时器名称和“所有计时器”的下拉列表,有两个按钮链接到两个功能-启动和停止,以计时器启动名称的参数(以字符串形式显示的计时器)为例。下拉列表是什么意思?你能详细说明一下吗?数据验证,设置为List并为计时器名称提供一个范围,然后函数将被传递到包含下拉列表的cell vaue谢谢你的回答。我很感激。有一个包含所有计时器名称和“所有计时器”的下拉列表,有两个按钮链接到两个功能-启动和停止,以计时器启动名称的参数(以字符串形式显示的计时器)为例。下拉列表是什么意思?你能详细说明一下吗?数据验证,设置为List并为计时器名称提供一个范围,然后函数将被传递到包含下拉列表的cell vaue谢谢你的回答。我很感激。你有什么理由不在MsgBox行中使用格式(timetake,“HH:mm:ss”)吗?谢谢你的回复。我在VBA方面非常缺乏经验,这就是我为什么不考虑任何事情的原因。我试试看。感谢您在MsgBox行中不使用格式(timetake,“HH:mm:ss”)有什么原因吗?谢谢您的回复。我在VBA方面非常缺乏经验,这就是我为什么不考虑任何事情的原因。我试试看。感谢您在MsgBox行中不使用格式(timetake,“HH:mm:ss”)有什么原因吗?谢谢您的回复。我在VBA方面非常缺乏经验,这就是我为什么不考虑任何事情的原因。我试试看。感谢您在MsgBox行中不使用格式(timetake,“HH:mm:ss”)有什么原因吗?谢谢您的回复。我在VBA方面非常缺乏经验,这就是我为什么不考虑任何事情的原因。我试试看。谢谢