2012-09-23 192 views
0

我想比較VBA/Excel中的兩個變量,但是VBA認爲它們即使它們是不一樣的。兩個變量的VBA比較

我已經創建了兩個數據透視表,並且正在檢查兩個數值中的值是否相同。

的代碼是:

Dim pvt As PivotTable 
Set pvt = ActiveSheet.PivotTables(2) 
For Each Pi In pvt.PivotFields("Filialas").PivotItems 
    With Sheets("Composite").Range("D:D") 
    Set c = .Find(Pi.Value, LookIn:=xlValues) 
    If Not c Is Nothing Then 
     If Pi.DataRange.Value = c.Offset(0, 1).Value Then 
      c.Offset(0, 6).Value = Pi.DataRange.Value & " equals " & c.Offset(0, 1).Value 
      Else 
      c.Offset(0, 6).Value = Pi.DataRange.Value & " does not equal " & c.Offset(0, 1).Value 
     End If 
    End If 
    End With 
Next 

而結果:

enter image description here

我不是一個程序員,所以我會很感激你的看法。

謝謝!

+3

這個問題可能是因爲浮點數比它們看起來大(例如它可能是61.812),並且如果程序需要它,它會自動舍入到小數點後兩位。 您是否嘗試過擴展小數位以比較數字以確保它們完全相同? – David

+0

「如果Application.WorksheetFunction.RoundUp(Pi.DataRange.Value,2)= Application.WorksheetFunction.RoundUp(c.Offset(0,1).Value,2)然後」做了訣竅:}謝謝。 – August

回答

4

這個問題可能是因爲浮點數比它們看起來大(例如它可能是61.812),並且如果程序需要它,它會自動舍入到小數點後兩位。

您是否嘗試過擴展小數位以比較數字以確保它們完全相同?

  • 解決方案是正確的,並將值舍入到小數點後兩位解決了問題,如問題的註釋中所示。