2017-04-16 3 views
1

次のコードでは、2つの変数が異なる場合でもelse条件が常に発生します。私はそれを削除する場合、それはちょうどそれと同じように動作しますが、 "いいえ"と書かれているはずの空白があります。その他の条件は常に発生します

For i = 2 To lRowMas 'Loop through all rows in Master Sheet 
    For j = 2 To lRowCurrentSheet 'Loop through all rows in sheet to compare 
     If Sheets(masterSheet).Cells(i, 1) = Sheets(sheetNamesAsArray(x)).Cells(j, 1) Then 
      Sheets(masterSheet).Cells(i, x + 2).Value = "Yes" 'set value to Yes 
     Else 
      Sheets(masterSheet).Cells(i, x + 2).Value = "No" 'set value to Yes 
     End If 
    Next j 'End inner loop, on sheet to compare 
Next i 'End outer loop, on MasterSheet 
+0

以下@AlwaysDataの答えで指摘したように、驚愕のこの種の別の一般的な原因は、Double型の変数を使用することです。 Excelは、このタイプをデフォルトで使用して、正確な計算を表現します。同様の値の倍数は、表示された値との差はありませんが、数値比較で示されるような小さな部分(0.0000001など)によって異なる場合があります。比較するセルにこのような値がある場合は、比較の前に丸めます。 – Variatus

+0

比較されている2つのセルには実際に何が含まれていますか?すなわち、どのデータ型、テキスト、数字または何ですか? – sktneer

+0

申し訳ありません。それらは整数です。 –

答えて

1

私は私の問題を解決しました。 End Forを追加するのを忘れてしまったので、一度一致するものを見つけたら、それを次の繰り返しでnoで上書きします。皆さんの助言をいただきありがとうございます。あなたはセルの値ではなく、細胞を比較することを確認すること以外

関連する問題