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
以下@AlwaysDataの答えで指摘したように、驚愕のこの種の別の一般的な原因は、Double型の変数を使用することです。 Excelは、このタイプをデフォルトで使用して、正確な計算を表現します。同様の値の倍数は、表示された値との差はありませんが、数値比較で示されるような小さな部分(0.0000001など)によって異なる場合があります。比較するセルにこのような値がある場合は、比較の前に丸めます。 – Variatus
比較されている2つのセルには実際に何が含まれていますか?すなわち、どのデータ型、テキスト、数字または何ですか? – sktneer
申し訳ありません。それらは整数です。 –