我的IF条件如下。 这里EntitySum是1.虽然条件不满意,但它是ifign into。
Dim RowCount As Integer
Dim ColCount As Integer
Dim m, x As Integer
Dim EntitySum As Double
RowCount = Worksheets("Contribution").UsedRange.Rows.Count - 4
ColCount = Worksheets("Entities").UsedRange.Rows.Count - 4
m = 4
'outer loop for Rows
Do
EntitySum = 0
x = 6
m = m + 1
'inner loop for Columns
Do
x = x + 1
EntitySum = EntitySum + Worksheets("Contribution").Cells(m, x).Value
Loop Until x = ColCount + 6
If EntitySum <> 1 Then
MsgBox "The Entity Contribution at Row " & m & " is not 100%. Please Fix it to proceed further."
Exit Sub
End If
Loop Until m = RowCount + 4
VBA有什么问题吗?
感谢您的回复。
谢谢, 丽塔
答案 0 :(得分:1)
问题是即使您的屏幕截图显示EntitySum = 1
的值,但事实并非如此。这是一种复制问题的简单方法
在单元格A1
中输入此数字0.00000000000000001
。您将看到Excel自动将其格式化为1E-17
现在试试这段代码
Sub Sample()
Dim EntitySum As Double
EntitySum = 1 + Range("A1")
If EntitySum <> 1 Then
MsgBox "A"
End If
End Sub
现在EntitySum
绝对不等于1
,但如果将鼠标悬停在该变量上,它会将其显示为1
。这是一个浮点问题。 Excel无法处理如此大的数字,因此它会产生问题。
要理解为什么它在您的情况下表现如此,您必须检查单元格Worksheets("Contribution").Cells(m, x).Value
并查看它们具有哪种值。