私はこれに必要な答えを見つけるのに苦労しています。私が書いたコードは、私が達成したいことを達成するために別々にアプローチする必要があると感じている。Excel VBA:文字列範囲で遡及行にIF文を繰り返してください
セル上にIF文を生成し、その隣の別のセルに対応する記述を表示するコードをいくつか生成しました。この値が変更された場合に自動的に更新するコードも追加しました。これは機能します。
これでコードを拡張して、セルをループして同じ機能を繰り返すようにする必要があります。 IF文をチェックし、その隣にあるそれぞれのセルに対応する記述を表示する。
シートVBA:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Me.Range("A2:A10")) Is Nothing Then Exit Sub
Application.EnableEvents = False
On Error GoTo Finalise
Call Material_String
Finalize:
Application.EnableEvents = True
End Sub
モジュール:
Sub Material_String()
Dim MaterialOption As String
Dim MaterialDetail As String
MaterialOption = Range("A2").Value
If MaterialOption = "a" Then MaterialDetail = "a is bloody good"
If MaterialOption = "b" Then MaterialDetail = "b is excellent"
If MaterialOption = "c" Then MaterialDetail = "c is most good"
If MaterialOption = "d" Then MaterialDetail = "d is simply the best"
If MaterialOption = "e" Then MaterialDetail = "e's are just amazing"
Range("C2").Value = MaterialDetail
End Sub
任意のポインタをいただければ幸いです。
チェックアウト[どの範囲をループする(http://www.excel-easy.com/vba/examples/loop -through-defined-range.html)を参照してください。また、 'If'文の代わりに[Select Case](http://www.excel-easy.com/vba/examples/select-case.html)も役に立つかもしれません。 –
セルを変更してコードをアクティブにした場合、そのセルのほとんどが変更されていない場合、なぜ範囲全体をループする必要がありますか?私はそれが正しいと思っていただろう。 – SJR