私はVBAで単純に機能するようになっていますが、スタックしています。 セル内に0から100までの任意の値を持つことができる値があります。単純な "If"ステートメントでは、10以下の値と100の値を除外することになっています。行全体が別のシートにコピーされます。VBA:値を比較しようとすると無作為に結果が返される
は、ここで私が持っているものです。
For r = LastRow To 2 Step -1
If Range("H" & r).value > "10" And Range("H" & r).value < "100" Then
Rows(r).Copy Destination:=Worksheets("Funnel").Range("A" & LastRowDestination)
LastRowDestination = LastRowDestination + 1
End If
Next r
比較はしかし、特定のインスタンスのみで動作しているようです。
If Range("H" & r).value > "10" Then
私は比較より小さい値を導入すると問題が発生します。それは正しい行をコピーします(80と比較すると80より小さいすべての値など)がコピーされますが、さらに100の値を持つ行がコピーされます。greater thanステートメントは期待どおりに機能し、値を除外しますそれは小さすぎる。次の比較で
しかし、何行がコピーされません:
If Range("H" & r).value > "10" AND Range("H" & r).value < "100" Then
そして、この比較で、0または10の値を持つ行がコピーされます:
If Range("H" & r).value < "100" Then
があるようですパターンはありますが、なぜこれが起きているのかを後ろから知ることはできません。これを解決するための提案は感謝しています。
引用符を付けずに試してください。 – arcadeprecinct
引用符を使用すると、セルの値と文字列を比較しています。それらを削除すると、セルの値と数値を比較しています。 < and >などのタイプの操作の場合は、使用する数値です。 – Dave
さて、それは私のところではばかげていました。みんなありがとう - 問題解決! – curzic