Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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 使用列中的下一项随时间更改单元格的值_Excel_Vba_Macros - Fatal编程技术网

Excel 使用列中的下一项随时间更改单元格的值

Excel 使用列中的下一项随时间更改单元格的值,excel,vba,macros,Excel,Vba,Macros,我想知道是否有任何方法可以每10秒更改一个单元格的值。新值将是列中的下一个单元格,依此类推,直到它通过所有非空单元格 您可以使用应用程序.OnTime函数每10秒调用一个函数: Dim i As Integer Function startTimer() 'Set counter to 1 i = 1 'Call Function TimerFunction End Function Function TimerFunction() 'Write Current Time to Colu

我想知道是否有任何方法可以每10秒更改一个单元格的值。新值将是列中的下一个单元格,依此类推,直到它通过所有非空单元格

您可以使用
应用程序.OnTime
函数每10秒调用一个函数:

Dim i As Integer

Function startTimer()

'Set counter to 1
i = 1
'Call Function
TimerFunction
End Function

Function TimerFunction()

'Write Current Time to Column A
Sheets("Table1").Cells(i, 1).Value = Format(Now, "hh:mm:ss")

'If counter = 10, stop Timer
If i = 10 Then

    Exit Function
End If

i = i + 1
'Call this Function with a delay of 10 seconds
Application.OnTime Now + TimeValue("00:00:10"), "TimerFunction"
End Function

因此,将
If
条件更改为与任务匹配的条件。可能是这样的:如果当前列=上次使用的列(如果我理解正确的话)

是的,至少有两种方法。这很有帮助,您介意告诉我该做什么吗
startval
声明的原因是什么?另外,你知道函数和子函数之间的区别吗?Ups,startval是无用的,如果要尝试一些东西,就忘了删除它。当您在“开发人员”选项卡中按宏时,可以找到Sub,函数将不会显示在那里。函数可以返回一些东西,Subs不能。@gizlmeier-您正试图通过
工作表(“表1”)更改函数
TimerFunction
中的单元格值。单元格(i,1)。值=格式(现在是“hh:mm:ss”)
。这是不正确的,因为UDF无法修改工作表中的任何内容。UDF只返回最终结果。@Mrig您能准确解释一下您的意思吗?