2009-04-15 18 views
0

Excelのセルの範囲を塗りつぶしたいとき、別のセルが変更されたとき。Excel VBA - ONEセルの変更に基づく複数セルの更新

私は、プロジェクト番号に基づいて、別のマスターブック(WB2)から顧客の詳細を取得できるマクロを持っています。プロジェクト番号はリストとしてWB1にあります。ユーザーがWB1からプロジェクト番号を選択するとき、顧客の詳細を含むH9:H15(WB1内)の範囲のセルを入力する必要があります。私はこれを引き起こすためにworksheet_changeイベントを使用しています。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = "$A$15" Then 
     Call modInvoiceFiller.FillCustomerDetails 
    End If 
End Sub 

このコードでは、更新は行われません。プロシージャを手動で実行すると、必要な詳細が入力されます。誰かが助けてくれますか?

よろしく、私のために正常に動作します プラブー

答えて

1

。マクロがワークブックではなく正しいワークシートに接続されているかどうかを確認しますか?

伝えるための簡単な方法は、それを変更することです:

Private Sub Worksheet_Change(ByVal Target As Range) 
    MsgBox Target.Address 
    If Target.Address = "$A$15" Then 
     MsgBox "XX " & Target.Address 
    End If 
End Sub 

、あなたは(あなたがあなたのif文でのチェックをしなければならない値を含む)任意のセルを変更したときにメッセージがポップアップ表示を確認し、また、セルA15を変更すると2つのメッセージが表示されるようにしてください。

1

チェックする物事のカップル:

  • はプロジェクト番号が含まれているシートの上にWorksheet_Changeを実装していますか?
  • modInvoiceFiller.FillCustomerDetailsコードを削除してmsgbox呼び出しに置き換えると、コードは実行されますか?
関連する問題