【发布时间】:2018-07-02 13:37:47
【问题描述】:
如果选中复选框,我会尝试在特定时间在 Excel 中运行宏。 它正在正常工作,唯一的问题是它只有在 工作簿设置为自动计算,我需要将工作簿设置为手动计算。
这是我在该文件中使用的 VBA 代码: 表 1:
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 中的公式仍未重新计算。
【问题讨论】:
-
您可以尝试公开共享链接到信誉良好的文件共享(Google 驱动器、Dropbox 等),允许重新分发启用宏的工作簿,但人们通常不愿意(并且理所当然地)打开启用宏的工作簿从互联网下载的工作簿。