Excel VBA'If Then Else'语句失败

时间:2017-02-17 01:00:11

标签: excel vba excel-vba if-statement

我是SO的新手,所以请原谅我在问题中没有包含的任何细微差别。我来找你们帮我们用Excel VBA写的一些编码。我有一个单元格,它是一系列单元格的总和,这些单元格用小数字填充并格式化为百分比(例如,单元格C4 = 40.00%,C4实际值= 0.4)。在我的代码中,我有一个I / T语句,内容如下:

If PC.Range("c16").Value = 1 Then

' do a bunch of stuff ' 

Else:

MsgBox "Percentages don't add to 100%."

我遇到的问题是,单元格值范围的顺序有时会触发代码进入代码的Else部分,即使单元格DOES = 1.是否有人看过这个或者有人可以帮忙吗?如有必要,我可以提供其他信息,如果需要,我甚至可以完整地发送Excel代码。

提前谢谢大家,我期待着学习!

克里斯

1 个答案:

答案 0 :(得分:0)

为了调试代码,请尝试以下方法:

Dim dDebug as Double

dDebug = PC.Range("C16").Value

msgbox dDebug ' or use Debug.Print if you have the immediate window showing

If PC.Range("c16").Value = 1 Then

' do a bunch of stuff ' 

Else ' Note that I have removed the colon on the else given that it is not needed.
    MsgBox "Percentages don't add to 100%."

这应该准确显示您的代码所看到的值。如果没有看到你正在使用的工作簿,我会打赌正在发生的事情是看起来值是1,但它实际上是四舍五入。

如果不是这样的话,我的下一个赌注是PC没有正确设置,并且正在检查错误的值。