我正在尝试每天早上9点将Sheet 1 Col A上的单元格值从“Yes”更改为“No”,而无需手动打开工作簿。例如,如果Sheet 1 Col A的单元格值今天为“是”,则明天上午9点需要显示“否”。但是,我无法在特定时间自动更改。有人可以帮忙吗?请参阅下面的示例和我的代码。提前谢谢。
今天下午1点
A B
no 1
no 2
yes 3
no 4
yes 5
yes 6
yes 7
明天上午9点1分
A B
no 1
no 2
no 3
no 4
no 5
no 6
no 7
Option Explicit
Public rTime As Date
Sub time()
rTime = Now + TimeValue("00:09:00")
Application.OnTime EarliestTime:=rTime, Procedure:="CellValueAutoIncr1", schedule:=True
Dim Sheet1 As Worksheet
Dim lastrow As Integer
Dim k As Integer
Set Sheet1 = ThisWorkbook.Sheets("Sheet1")
lastrow = Sheet1.Range("B" & Rows.Count).End(xlUp).Row
For k = 2 To lastrow
If Sheet1.Cells(k, 1).Value = "yes" Then
Sheet1.Cells(k, 1).Value = "no"
End If
Next k
End Sub
答案 0 :(得分:0)
使用单独的子程序设置 no 值并自行设置子计划。
Module1代码表
Option Explicit
Sub timed_no()
Application.OnTime EarliestTime:=Date + TimeSerial(9, 0, 0) - CBool(TimeValue(Now) > TimeSerial(9, 0, 0)), _
Procedure:="make_No"
End Sub
Sub make_No()
With ThisWorkbook.Sheets("Sheet1")
.Range("A2:A" & .Cells(Rows.Count, "B").End(xlUp).Row) = "no"
End With
Application.OnTime EarliestTime:=Date + 1 + TimeSerial(9, 0, 0), _
Procedure:="make_No"
End Sub
此工作簿代码表
Option Explicit
Private Sub Workbook_Open()
make_No
End Sub
您可以通过调用 timed_no 强制手动 n 重置和计划。当您最初打开工作簿时,这可能会派上用场。通过调用 timed_no 手动安排下一次否重置。