我不小心创造了一个vba竞争条件?

时间:2014-02-12 14:03:07

标签: excel vba excel-vba

我希望对我无法复制的错误有所了解。

我有一个非常复杂的工作表,它会更改许多变量以使某个单元格aa5返回一个字符串。如果不满足任何条件,则返回0。该单元格的公式是

=IF(SUM(AA2:AA4)=0,SubItem,0)

其中aa2:aa4是返回字符串必须为0的条件,而subitem是指定的单元格范围。

一旦它返回一个字符串,我就有一个模块将单元格aa5粘贴到另一个工作表export上。问题是,在我运行例程后(大约需要20分钟),我在export表中找到了0个值。

我尝试手动将所有变量更改为创建错误的条件,但没有出现。我也尝试逐行浏览代码,似乎无法在那里复制它。

我的最后一根稻草是插入粘贴到export

的模块中
If Worksheets("analysis").Range("aa5").Value = 0 Then
Exit Sub

跑步后我仍然有0值!

我不是一个真正的程序员,但我有VBA代码一定的经验,是有可能我'已经创建,其中0为if被更新之前复制的竞争条件,但它仍然经过VBA检查?

1 个答案:

答案 0 :(得分:3)

在VBA中使用之前尝试计算您的值:

With Worksheets("analysis").Range("aa5")
    .Calculate
    If .Value <> 0 Then
        Worksheets("export").Range("A1").Value = .Value
    End If
End With