如果选中复选框,我正在尝试在特定时间在excel中运行宏。 它可以正常工作,唯一的问题是,仅当 工作簿设置为自动计算,我需要将工作簿设置为手动计算。
这是我在该文件中使用的VBA代码: sheet1:
Private Sub Worksheet_Calculate()
Dim time_dt As Date
time_dt = Cells(1, 7)
If Range("C1").Value = "YES" Then
Application.OnTime TimeValue(time_dt), "FillFirstColumn"
End If
End Sub
这是第1单元的代码:
Sub FillFirstColumn()
Range("A1:A20").Value = "YES"
End Sub
当我单击复选框时,单元格D1从FALSE变为TRUE。在单元格C1中,我有这个公式= IF(D1 = TRUE,“ YES”,“ NO”)。除非将工作簿设置为自动,否则C1不会重新计算。
根据下面评论的建议,我已将此VBA代码添加到sheet1:
Private Sub CheckBox1_Click()
ThisWorkbook.Worksheets("Sheet1").Cells(1, "C").Calculate
End Sub
但是C1中的公式仍未重新计算。
答案 0 :(得分:0)
您可以计算所有打开的工作簿,一个包含许多工作表的工作簿,一个工作表,一个工作表中的单元格区域或单个单元格。
thisworkbook.worksheets("sheet1").cells(2, "B").calculate
上面将重新计算运行子过程的工作簿中的单个单元格(Sheet1!B2)。