2017-01-30 11 views
-3

元の参照セルの右側にある空白のセルに(別のシート上の)セルの値をコピーするには、VBAスクリプトが必要です。参照セルは、3つの値を持つドロップダウン(Verbal、Written、Demonstrated)です。値がセルに入力されると、セルに追加のコメントを追加する必要があるため、VBAが必要です。3番目のセルの値に基づいてセルの値を別のセルにコピー

Col Gは、ドロップダウンの参照セルです。 コルI見上げる範囲は、VBAコード

の目的地である:シート(「削除しない」)範囲(「C2:D4」)

すべてのヘルプは大歓迎です!

+2

スタックオーバーフローはコードではありません。サイトの開始場所を教えてください。動作していないコードがある場合は、編集を使用してオリジナルの投稿に入れ、エラーの原因を説明してください。もしそうでなければ、これはおそらく投票が遅くなり過ぎて広すぎるとして閉じられるでしょう。 –

答えて

0

アクティブシートがドロップダウンリストの値であることを確認してください。この関数を実行するには、呼び出しを行う必要があります。

' 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 
関連する問題