2017-10-31 29 views
0

wsの変更を使用して交差をテストし、次にコンボボックスに移動して何かを取得することを目的とした、値がボックスに入力されます。しかし、何が起こっているのは、値がコンボボックスに入力された後で、セルがその値で更新されていないときです。もう一度クリックする必要があります。別のイベントプロシージャを使用しなければならないことは知っていますが、コンボボックスイベントについては何の手掛かりもありません。誰かが私を正しい方向に向けることができますか?VBA - コンボボックスのテキストが入力/変更された後にセルの値を入力する

Thx Mike。

Option Explicit 

Private Sub Worksheet_Change(ByVal Target As Range) 

Dim aRng As Range 
Dim tRng As Range 

Set aRng = Range("C19:C36") 
Set tRng = Sheet2.Range("I2") 

Application.EnableEvents = False 'to prevent re-iteration of event 

On Error GoTo cleanup: 
If Not Intersect(aRng, Target) Is Nothing Then 
Call Sheet2.ComboBox1_Change 
Target.Value = Sheet2.ComboBox1.Value 
End If 

cleanup:   'enable events once again 
Application.EnableEvents = True 

End Sub 

およびボックス2のシート2にある。

Public Sub ComboBox1_Change() 
With ComboBox1 
.Activate 
.SelText = Empty 
.DropDown 
.MatchRequired = True 
End With 
End Sub 
+0

これはExcelについてですか?製品にあなたの質問をタグ付けしてください! –

+0

完了。 MS Excel 2010 –

答えて

0

質問の基礎を得るために、ComboboxにはLinkedCellプロパティがあります。 Sheet1にセルアドレスを入力すると、ComboBox内の選択された項目がSheet1に表示されます。 (値は、シート1に、そのセルに入力された場合、それはまた、コンボボックスに表示されます。)

ComboBox LinkedCell

あなたは選択が(このコードでコンボボックスで行われた後に表示されるように、シート1を強制することができます)のSheet2のモジュールで:何かがセルに入力されている(とRETURNがヒットされた後

Worksheet_Changeを使用して
Private Sub ComboBox1_Change() 
Sheet1.Select 
End Sub 

にのみ効果があります)。

+0

コードの流れを再構成することをお勧めしますか? –

+0

実際、私が与えた例を設定してから、追加してください。 – BartH

関連する問題