Excel 使用列中的下一项随时间更改单元格的值
我想知道是否有任何方法可以每10秒更改一个单元格的值。新值将是列中的下一个单元格,依此类推,直到它通过所有非空单元格 您可以使用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
应用程序.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您能准确解释一下您的意思吗?