アクティブシートがドロップダウンリストの値であることを確認してください。この関数を実行するには、呼び出しを行う必要があります。
' This is meant to be run in a module and must be called
Sub tester()
Dim lastRow As Long, testString As String, rng2Search As Range
lastRow = ActiveSheet.Range("G65536").End(xlUp).Row
For i = 1 To lastRow
If ActiveSheet.Range("G" & i) = "Verbal" Or _
ActiveSheet.Range("G" & i) = "Written" Or _
ActiveSheet.Range("G" & i) = "Demonstrated" Then
Set rng2Search = Sheets("DO NOT DELETE").Range("C2:C4").Find(ActiveSheet.Range("G" & i), LookIn:=xlValues)
If Not rng2Search Is Nothing Then
ActiveSheet.Range("I" & i).Value = Sheets("DO NOT DELETE").Range("D" & rng2Search.Row).Value
End If
End If
Next i
Set rng2Search = Nothing
End Sub
また、G列のセルが変更されるたびにワークシート・モジュール上で実行するように変更できます。ドロップダウン値を含むワークシートモジュールを開き、そこに貼り付けます。
' This will run automatically if in the worksheet module
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng2Search As Range
If Mid(Target.Address, 1, 2) = "$G" Then
Set rng2Search = Sheets("DO NOT DELETE").Range("C2:C4").Find(Target.Value, LookIn:=xlValues)
If Not rng2Search Is Nothing Then
ActiveSheet.Range("I" & Target.Row).Value = Sheets("DO NOT DELETE").Range("D" & rng2Search.Row).Value
End If
End If
End Sub
スタックオーバーフローはコードではありません。サイトの開始場所を教えてください。動作していないコードがある場合は、編集を使用してオリジナルの投稿に入れ、エラーの原因を説明してください。もしそうでなければ、これはおそらく投票が遅くなり過ぎて広すぎるとして閉じられるでしょう。 –