2015-01-31 2 views
2

Excel 시트에 Lables, TextBoxes 및 ListBox를 채우는 코드를 약간 생성했습니다. ListBox를 채우고 나면 .List = Sheets(). Range(). 값 항목을 선택하려면 클릭 할 수 없습니다. 시트를 저장하면 닫고 다시 열면 제대로 작동합니다.Excel VBA ActiveX ListBox가 클릭을 허용하지 않습니다.

나는 http://blogs.technet.com/b/the_microsoft_excel_support_team_blog/archive/2014/12/11/forms-controls-stop-working-after-december-2014-updates-.aspx

을 확인했습니다하지만 이것은 잘못된 수정을 것 같다 그래서 오류를받지 못했습니다. 나는 다음과 같은 http://support.microsoft.com/kb/3025036/EN-US

에 대한 KB를 검색 할 때

이 증상은 내가 경험하고있는 무슨 다릅니다. .

는 또한 여기에 게시로() 활성화 시트를 사용하여 시도 : Excel ActiveX Listbox not enabled on file open

을하지만 도움이되지 않았거나 내가 잘못을 구현하고있다.

이리스트 박스를 만드는 코드입니다

나는이에 대한 해결책을 찾아 할 수있는
Private Sub Create_ListBox_ActiveXControlProperties() 

    Dim oLISTBOX As OLEObject 

    Set oLISTBOX = ActiveSheet.OLEObjects.Add(classtype:="Forms.ListBox.1", Top:=35, Width:=500, Left:=650, Height:=600) 
    ActiveSheet.OLEObjects("ListBox1").Object.Font.Size = 14 
    ActiveSheet.OLEObjects("ListBox1").Object.ListStyle = 0 
    ActiveSheet.OLEObjects("ListBox1").Object.List = Sheets("Search Criteria Control").Range("g1:g21").Value 

End Sub 

사람이 제안 할 수 있습니다?

답변

2

설명 할 수 없지만 하위 끝에 Activesheet.Select을 추가하면 항목을 선택할 수 있습니다. 글을 쓰는

+0

좋은 일. 시트에서 셀을 선택하려고 시도했지만 아무 것도하지 않았습니다. –

+0

아름다운. 고맙습니다. – mchac

2

또 다른 방법 :

Sub M_snb() 
    With ActiveSheet.OLEObjects.Add("Forms.ListBox.1", , , , , , , 35, 50, 65, 60) 
    .Object.Font.Size = 14 
    .Object.List = ActiveSheet.Range("g1:g21").Value 
    .Object.ListIndex = 0 
    .Parent.select 
    End With 
End Sub 
+0

감사합니다. snb, 나는 그것으로 실험 할 것입니다. .Parent.Select는 Activesheet.Select와 동등한가? – mchac

+0

예, 액티비티 시트는 ActiveX 컨트롤의 '컨테이너'/ '부모'입니다. – snb

+0

엄지 손가락으로. 분명히 내 신참 선수보다 훨씬 작아. 활성 시트가 ​​소스 시트 (activesheet 아님)를 지정하도록 변경하고 "Top : = 35, Width : = 500, Left : = 650, Height : = 600"으로 돌아갔습니다. 쉼표 중 하나가 꺼져 상자가 잘못된 장소에 있었고 어떤 필드가 어떤 것인지 결코 기억할 수 없습니다. – mchac

관련 문제