2017-10-31 2 views
0

ws 변경 내용을 사용하여 교차 테스트를 수행 한 다음 내 통합 문서에 ws 변경 사항을 테스트 한 다음 내용을 검색하는 코드 조각이 있습니다. 값이 상자에 입력됩니다. 그러나 셀이 값으로 업데이트되지 않는 첫 번째 시간은 콤보 상자에 값을 입력 한 후에 발생합니다. 나는 그것을 다시 클릭해야만한다. 다른 이벤트 프로 시저를 사용해야 할 가능성이 있지만 콤보 상자 이벤트에 대한 단서가 없습니다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까?VBA - 콤보 상자 텍스트를 입력/변경 한 후 셀 값 채우기

Thx 마이크.

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에 표시됩니다. (값이 Sheet1의 해당 셀에 입력하면, 그것은 또한 콤보 상자에 표시됩니다.)

ComboBox LinkedCell

선택이 코드를 사용하여 콤보 상자에서 만든 후에 (표시 할을 Sheet1에 강제 할 수

뭔가가 셀에 입력 된 (그리고 RETURN이 타격을 받았다 후에 Worksheet_Change에만 영향을 미칠 것입니다 사용

Private Sub ComboBox1_Change() 
Sheet1.Select 
End Sub 

) : 시트 2의 모듈)이다.

+0

코드의 흐름을 다시 구조 할 것을 제안 하시겠습니까? –

+0

사실 내가 준 예제를 설정하고 추가 기능을 추가하는 것으로 시작하십시오. – BartH