如何每天改变细胞价值

时间:2016-02-18 03:55:53

标签: excel vba

我正在尝试每天早上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

1 个答案:

答案 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 手动安排下一次重置。