2011-12-09 2 views
1

디자인 타임에 추가 된 Excel 사용자 정의 폼에는 세로로 두꺼운 콤보 상자가 두 개 있으며 바운드 열이있는 것은 아닙니다. ComboBox1에서 선택이 이루어지면 ComboBox2에 "추가 선택 만들기 ===>"와 같은 텍스트를 표시하고 싶습니다. ComboBox2에서 선택하면이 텍스트가 사라집니다.사용자 폼의 Excel ComboBox에 임의의 텍스트 표시

어떻게하면됩니까?

+0

ComboBox1의 Change Event에서 ComboBox2.AddItem을 사용하십시오. 추가 선택 ===> ". 그러나 ComboBox2의 Change Event에서는 선택을 감지하고 "추가 선택"을 선택하지 못하게하고 ComboBox2.Remove를 사용하여 제거 할 수있는 논리가 필요합니다. 추가 선택 ===> " – JimmyPena

+0

불행히도 , ComboBox의 RowSource를 Range와 동일하게 설정했기 때문에 AddItem을 사용할 수없고 런타임에 AddItem을 시도하면 런타임 오류 70 (사용 권한이 거부 됨)이 생성됩니다. RowSource 목록에 대한 Range 대신 ListBox를 사용하여 AddItem을 허용할지 확인할 수 있습니다. – Roy

답변

1

최종 결과로 얻고 자하는 것이 무엇인지를 아는 것이 도움이됩니다.

하나의 가능성은 콤보 2의 행 원본을 설정하는 통합 쿼리이다, 말 :

SELECT -1 As ID,"Make further selection ===>" As Something FROM Table1 
UNION ALL 
SELECT ID, Something FROM Table1 

당신은 행 원본을 설정하는 콤보 상자의 업데이트 이벤트 후 사용할 수 있습니다,하지만 당신은의 값을 원하는 경우 막대기를 사용하려면 바운드 열을 설정해야합니다.

1

텍스트를 강제로 ComboBox에 넣으려고하면 내가 달성하려고 시도한 사소한 효과에 비례하여 모든 것을 비 롯한 것으로 나타납니다.

그래서 이제는 그 방법을 포기하고 ComboBox에 텍스트를 넣으려고하지 않고 ComboBox2 위에 배치 된 Label 위에 놓았습니다 (그러나 DropButton 표시는 그대로 두었습니다). 레이블로 변경하면 텍스트의 서식을 더 잘 정할 수 있으며 두 ComboBox의 변경 이벤트를 사용하여 레이블의 Z 순서를 전환합니다.

내 질문에 대한 답변은 원래의 방식을 따르려는 노력이 가치가 없으며 더 좋은 방법이 있다는 것입니다.

관련 문제