2017-02-18 1 views
0

검색 전에 Find을 사용하여 검색 매개 변수를 자르는 방법이 있습니까?검색하기 전에 검색 매개 변수를 자르십시오. 찾기

특정 단어가 포함 된 셀을 찾으려면 검색 할 Excel 파일이 있습니다. 각 셀에는 단 하나의 단어 만 들어 있습니다. Find 함수는 대/소문자를 구분하지 않으며 대부분의 경우 완벽하게 작동합니다. 내가 찾은 유일한 (가능한) 결함은 셀에 선행 및 후행 공백이없는 단어 만 포함해야한다는 것입니다. 예를 들어

: 나는 Find 기능

Dim rng as Range 
rng = ActiveSheet.Range("A1:K100") 
Set foundItem = rng.Find("acoustic") 
if not foundItem Is Nothing Then MsgBox foundItem.Address 

이 많은 변화에서 단어를 찾을 사용하여 단어의 음향을 검색하려면 - "어쿠스틱", "ACOUSTIC", "음향" "어쿠스틱"이나 "어쿠스틱"과 같은 선행 또는 후행 공백이 있으면 찾지 못합니다.

그래서 검색을 수행하기 전에 셀에서 공백을 제거하는 방법이 있습니까? 아니면 범위를 통과하고 먼저 트림 할 함수를 만들어야합니까?

당신은 이전에 발견의 범위를 트리밍 할 수

답변

0

:

rng.value = Application.Trim(rng.value) 

또는 범위 수식을 가지고 있으며, 당신이 그들을 유지하려는 경우 : 단지 xlPart

LookAt 매개 변수 Find() 방법을 설정
rng.Formula = Application.Trim(rng.Formula) 
+0

와우 .... 당신은이 VB 물건 전부입니다. 나는자를 수 있음을 알고 있었지만 그런 식으로 전체 범위를 다듬을 수는 없다. 이것은 완벽 해. 고맙습니다! – Apolymoxic

+0

@Apolymoxic 당신을 환영합니다. 범위를 다듬는 다른 방법에 대해서는 [here] (http://stackoverflow.com/questions/42147564/trim-function-remove-spaces-from-cells-using-vba/42148229#42148229)를 참조 할 수 있습니다. –

0

Set foundItem = rng.Find(What:="acoustic", LookIn:=xlValues, lookat:=xlPart, MatchCase=False) 

동일한 검색을 할 수도 있습니다. 수식 채널 :

Set foundItem = rng.Find(What:="acoustic", LookIn:=xlFormulas, lookat:=xlPart, MatchCase=False) 

그리고 당신은 항상 명시 적으로 LookIn, LookAt, SearchOrder을 specifcy 것을 통보하고, MatchByte 매개 변수, 그렇지 않으면 Find()은 마지막 설정을 사용합니다 심지어 엑셀 UI의 경우! (내 용도로는 항상 적어도 LookInLookAt 매개 변수를 지정하는 것으로 충분하다는 것을 알았습니다.)

관련 문제