我是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代码。
提前谢谢大家,我期待着学习!
克里斯
答案 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没有正确设置,并且正在检查错误的值。