나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 조삿갓 (choga21)

추천:  2
파일:     키워드검색콤보박스.xlsm (26.6KB) 조회:  4718
제목:   [RE]vba 자동완성에 관련된 질문을 드리고자합니다..
     
  - 엑셀 버전(95,97,2000,xp,2003,2007): 2013

* 아래줄에 질문을 작성하세요 >>

Sheet2에 있는 동물의 목록을 가지고 Sheet에 콤보박으로 나타내었습니다.

엑셀에서 자동기능으로 앞글자부터 시작했을때는 해당문자와 관련된 단어를 찾아줍니다

하지만 중간 단어부터 검색을하면 검색이 되지않습니다..

그래서 http://egloos.zum.com/longkee/v/1465037 ;여기를 참고하여 작업을 하려고하는데 한계가 있는것 같아 VBA고수분께 도움을 받고싶습니다..
==============[김원호님 글에 대한 답변입니다]==============

문자열 자동완성의 기본 원칙은 왼쪽부터 일치하는 문자열을 찾는 것이 당연합니다. 이 원칙이 무너지게 되면 오히려 곤란한 상황일 발생할 수 있지요.

말씀하신 기능을 구현하려면 목록 선택용 콤보상자나 리스트상자와 별개로, 키워드 검색창(텍스트상자 또는 직접 셀을 사용해도 무방)에 입력한 키워드에 따라 목록을 필터링해 주어야 할 것입니다.

붙임 파일을 참고하시기 바랍니다.
두 가지 방법을 모두 구현하였습니다.

B2 셀이나 또는 C2에 있는 텍스트상자에 검색 문자열을 입력하고
콤보박스를 열면 그 때 그 때 필터링된 목록이 보입니다.
검색창을 비워두면(널문자열), 전체 리스트가 목록 구성되고
검색창에 입력한 문자열을 포함하는 목록만 구성됩니다.

셀 자체를 검색창으로 활용할 경우에는 Worksheet_Change 이벤트를
텍스트박스 콘트롤을 활용할 경우에는 TextBox1_LostFocus 이벤트를 이용하면 됩니다.

TextBox1_Change 이벤트의 경우에는 상자 안에 키보드를 한 글자씩 타이핑할 때마다 자꾸 이벤트가 발생해서 비효율적입니다.
LostFocus는 영어 단어의 의미대로, 입력을 완성하고 다른 셀이나 다른 개체를 선택하는 순간 이벤트가 발생합니다.
 
[불량 게시물 신고]  
김원호감사합니다 많은 도움이 되었습니다.10-11 (21:49)
삭제 ■신고
        
  

작성일 : 2017-10-11(18:25)
최종수정일 : 2017-10-11(18:32)
 


 ◎ 관련글

  제 목   작성자   날짜
vba 자동완성에 관련된 질문을 드리고자합니다.. 김원호 2017-10-11
[RE]vba 자동완성에 관련된 질문을 드리고자합니다.. 조삿갓 2017-10-11