がこれですrange.valueの場合=何か - 。エクセルVBAその後、私が探しています何
セルの範囲内の値は、いくつかの値または同じ値に等しい場合、それは」負の他に「ポジティブ」を示す必要がありますしかし、私は構文以下のように書くとき、それは誤りスロー -
If range("F3:H5").value = "X" then
Msgbox "Positive result"
else
Msgbox "Negative result"
end if
がこれですrange.valueの場合=何か - 。エクセルVBAその後、私が探しています何
セルの範囲内の値は、いくつかの値または同じ値に等しい場合、それは」負の他に「ポジティブ」を示す必要がありますしかし、私は構文以下のように書くとき、それは誤りスロー -
If range("F3:H5").value = "X" then
Msgbox "Positive result"
else
Msgbox "Negative result"
end if
次のようなものが必要です:あなたはこの機能を使用することができます
Dim found As Boolean
found = False
For Each cell In Range("F3:h5").Cells
if cell.Value = "X" Then
found = True
end if
Next
If found = True Then
Msgbox "Positive result"
else
Msgbox "Negative result"
End if
ありがとう、しかし私はループで実行することはできません複数の範囲があります。私はそれを直接検証できる方法はありますか?ループなしで –
私はそうは思わない。とにかくそれが述べられているように、これは質問に答えます。 For/Nextループは、この作業を行うための余分なコードです。 – Paul
を
Function EvalRange(inRng As Range, inVal As Variant) As Variant
Dim CntAll, CntMatch As Double
CntAll = Application.Count(inRng)
CntMatch = Application.CountIf(inRng, inVal)
If CntAll = CntMatch Then
EvalRange = "Positive Result"
Else: EvalRange = "Negative Result"
End If
End Function
注:ソリューションは説明のためのものなので、私はエラー/例外処理を追加していません。ユーザーがその目的のために必要な変更を行うと仮定します。 – ArindamD
これは、アプリケーション関数を記述する正しい構文ではありません。すなわちApplication.count。 –
これを試してみてください。私は意図的に "Worksheetfunction"の使用を避け、 "Application"を使用してこの機能を使用しました。一言で言えば、Application.CountのようなステートメントはWorksheetfunction.Countよりも安定しています – ArindamD
VBA.MsgBox VBA.IIf(Evaluate("=SUMPRODUCT(--(F3:H5 = ""X""))"), "Positive result", "Negative result")
"" X "" 二重引用符により、二つの外側の引用符に
F3:H5 = "" X "は" ブール結果F3 = X、F4 = X等
のアレイであります- 負の値はブール値0/1になります。もう1つの負の "戻る" 1/0
IIf、評価、SUMPRODUCT ...機能。申し訳ありません、GIYF。
あなたのコードについて少し説明すればよいでしょう。 –
ようこそStackOverflowへ。通常は、匿名コードの行を単にポストするのではなく、解決策を説明する方が良いでしょう。 [良い答えを書くにはどうすればいいですか]と[コードベースの回答を完全に説明する](https://meta.stackexchange.com)を読むことができます。/questions/114762/explain-entire-%E2%80%8C%E2%80%8Bcode-based-answers)。 –
それは目的を果たす必要があります。
Sub string_validation()
Dim cel As Range
For Each cel In Range("F3:H8")
If cel.Value = "hassle" Then
MsgBox "Positive result"
Else
MsgBox "Negative result"
End If
Next cel
End Sub
「それはエラーをスローは」役に立たないです。 「型の不一致のエラーが発生します」では、より多くのものを扱うことができます。 – jsheeran