我已经在这里做了一些研究,试图让这个代码运行,但我仍然遇到问题。
我正在尝试在设定的时间运行宏。事实上,它是一些不同时代的宏。然后,该宏将一个单元格块复制到工作表上的不同区域。
我将无法使用Windows调度程序,因此我尝试这样做。我收集没有调度程序,我将不得不从一个按钮运行宏。因此,我的第一个子是这个(注释按钮位于数据的单独表格上)
Sub Call_save()
Call Sheets("Dashboard").8amsave
Application.OnTime TimeValue("08:10:00"), "Call_8amsave"
Call 9amsave
Application.OnTime TimeValue("09:10:00"), "Call_9amsave"
Call 10amsave
Application.OnTime TimeValue("10:10:00"), "Call_10amsave"
End Sub
此按钮用于在预定时间运行潜艇。它调用的潜艇是:
Sub 8amsave()
Dim current_data As Variant
current_data = Worksheets("Dashboard").Range("S6:V22").Value
Worksheets("Dashboard").Range("B33:E49").Value = current_data
End Sub
Sub 9amsave()
Dim current_data As Variant
current_data = Worksheets("Dashboard").Range("S6:V22").Value
Worksheets("Dashboard").Range("B54:E70").Value = current_data
End Sub
Sub 10amsave()
Dim current_data As Variant
current_data = Worksheets("Dashboard").Range("S6:V22").Value
Worksheets("Dashboard").Range("B75:E91").Value = current_data
End Sub
现在,当我运行初始按钮时,它会立即运行所有潜艇,并立即将销售复制到正确的位置。这对我来说真的不是问题。但是,在预定的时间我得到一个错误,说无法运行宏...无法找到它或者表无法运行宏...或类似的东西。
我失踪了,有什么令人眼花缭乱的明显吗?我一直在努力工作,因此我的VBA知识相当有限。正确方向上的一点很棒。
答案 0 :(得分:1)
您的OnTime
语句似乎也引用了不存在的过程名称,即Call_8amSave
而不是8amsave
。另请注意,过程名称不能以数字开头(例如8amsave
),并且此代码甚至不应该编译,更不用说执行了。
重命名您的程序,使它们与OnTime
语句中的调用相匹配,并且是法律允许的程序名称,例如:Sub Call_8amSave
等。
此外,OnTime
属性一次只能有一个过程,因此您不能再设置3个未来时间,您必须按顺序设置它们。因此,在上午8点程序中为上午9点设置OnTime
,等等。
Option Explicit
Sub Call_save()
Application.OnTime TimeValue("08:10:00"), "Call_8amsave"
End Sub
Sub Call_8amsave()
With Worksheets("Dashboard")
.Range("B33:E49").Value = .Range("S6:V22").Value
End With
Application.OnTime TimeValue("09:10:00"), "Call_9amsave"
End Sub
Sub Call_9amsave()
With Worksheets("Dashboard")
.Range("B54:E70").Value = .Range("S6:V22").Value
End With
Application.OnTime TimeValue("10:10:00"), "Call_10amsave"
End Sub
Sub Call_10amsave()
With Worksheets("Dashboard")
.Range("B75:E91").Value = .Range("S6:V22").Value
End With
End Sub