我的脚本中断了Excel的计算,有人可以帮助我确定它的问题吗?

时间:2019-08-28 08:35:52

标签: excel vba

我已经设置了VBA代码,该代码为用户设置了一个表格以填写信息。我设置了另一个在工作表计算上运行的VBA代码,该代码对任何不正常的信息进行一些检查和更正。一旦第二个代码运行,所有工作表计算就会停止,并且即使关闭工作表保护并且我选择了另一个单元格,我也只能编辑第一个未锁定的单元格。所有键入将进入第一个未锁定的单元格。

此脚本在通过选择更改或手动运行脚本触发时起作用。我已经搜索了互联网,但发现的只是设置列表(我已经检查了所有设置)。

Private Sub Worksheet_Calculate()
'Transfer
'

If Range("AAA1").Value = "Transfer" And Range("AAB1").Value = "Not Empty" Then
    If Range("D3").Value = "0" Or Range("D3").Value = "" Then
        Range("AAB1").Value = "Empty"
    End If
End If
If Range("AAA1").Value = "Transfer" And Range("AAB1").Value = "Empty" Then
    If Range("E3").Value = Empty Or Range("F3").Value = Empty Then
        Else
        Range("D3").Value = Range("AA3").Value
        Range("AAB1").Value = "Not Empty"
    End If
End If
If Range("D3").Value > Range("AA3").Value And Range("AAA1").Value = "Transfer" Then
    Range("D3").Value = Range("AA3").Value
End If

End Sub

预期的结果是,当单元格E3和F3均已填写并且单元格D3为空或等于时,单元格D3的值将自动设置为最大值(使用单元格E3中的值在单元格AA3中计算)零。我将AAB1单元格用作“开关”,以便用户可以轻松输入自定义金额。单元格AAA1由设置表格的第一个宏设置。一切一次。然后我遇到了上述问题。

1 个答案:

答案 0 :(得分:0)

我遵循了Harassed Dad的建议,将Application.EnableEvents = FALSE放在脚本的最开始,= TRUE的最后。它成功了。我不认为更改值会在脚本完成之前触发计算。谢谢大家。