有两张纸(sheet1和sheet2)。
只要打开工作簿,就需要每4分钟刷新一次sheet1。
然后,我需要每4分钟将工作表1中的C列的值复制到工作表2中的C列。
由于新值将在sheet1中每4分钟出现一次,因此我希望每次将这些值复制到sheet2中的新列中。
我正在使用以下代码。我的代码的问题在于,变量i每次都会重新启动,并且无法使用Public i长时间将其初始化为模块外部的值。
Sub copyvalues()
Dim i As Long
i = 3
Sheets(2).Columns(i).Value = Sheets(1).Range("C11:C90").Value
i = i + 1
Application.OnTime Now + TimeValue("00:04:00"), "copyvalues"
End Sub
答案 0 :(得分:1)
尽管您提到您不能将变量i
声明为Public,但这应该可行:
例如,以下内容可以正常工作:
Public i As Long
Sub test()
Debug.Print i
Application.OnTime Now + TimeValue("00:00:01"), "Module1.test"
i = i + 1
End Sub
尝试以下操作:
Public i As Long
Public SubIsRunning As Boolean
Sub initiatesubs()
If Not SubIsRunning = True Then
i = 3
Call copyvalues
SubIsRunning = True
End If
End Sub
Sub copyvalues()
Workbooks(REF).Sheets(2).Columns(i).Value = Workbooks(REF).Sheets(1).Range("C11:C90").Value
i = i + 1
Application.OnTime Now + TimeValue("00:04:00"), "Module1.copyvalues" 'assuming the sub is in Module1
End Sub