2013-05-22 2 views
0

좋아요. 비슷한 질문을 몇 개 보았지만 문제는 해결되지 않았습니다.값 내의 문자 찾기

내가 원하는 것은 * (별표)를 포함하는 각 cl에 대해 0으로 변경하려고합니다.

엑셀 코딩에 사용되기 때문에 별표를 보통 텍스트와 다르게 취급해야합니다. 내가 틀렸을지라도 다르게 대우 받아야 할 다른 성격이나 단어를 알고 있다면 독자와 내 지식 모두를 깨우쳐주십시오. 다음은

내 코드의 모양과 당신의 도움이

For each cl.value in range("A2:A300"). 
    If cl.value contains "*" then. Cl.value = 0. 
End if. 
Next cl. 
+0

'측량기가() '함수가 친구 : 엑셀과 –

답변

2

상황에 따라 적절한 if statement을 VBA에 쓰는 방법은 거의 없습니다. 다음과 같이 하나가 될 수있다 :

For Each cl In Range("A2:A300") 
    If InStr(1, cl.Value, "*") > 0 Then 
     cl.Value = 0 
    End If 
Next cl 
1

당신은 찾기/그것을 위해 교체 및 필터의 조합을 사용할 수 있습니다 주셔서 대단히 감사합니다 것입니다.

  1. 는 찾기에 Ctrl 키 + H, 선택 A 열을 히트 ~*을 넣어 (특수 문자를 이스케이프하는 데 사용되는 물결표 ~을)를가 비어 교체 둡니다.
  2. "추가 옵션"을 클릭하고 바꾸기 상자의 오른쪽에있는 "포맷"버튼을 클릭하십시오.
  3. "채우기"탭을 선택하고 노란색을 선택한 다음 "확인"을 선택하십시오.
  4. "전체 셀 내용 일치"가 선택 취소되어 있는지 확인하십시오.
  5. 시트에서 모두 바꾸기 (노란색으로 포함 된 모든 셀을 채워야 함).
  6. 열 A를 선택하고 노란색으로 필터를 적용한 다음 값을 선택하고 삭제합니다 (또는 0을 입력하고 아래로 끌어서 0을 입력하십시오).

그런 다음 채우기를 제거 할 수 있습니다.

+0

저는 완전한 멍청한 놈, 여전히 노란색 채우기 단계는 약간 불필요한 느낌, 그래서 난, ISN 궁금 여분의 단계없이 값을 검색/대체 할 수 있습니까? – jambriz

+0

@jambriz이 찾기/바꾸기는 실제로 아무것도 대체하지 않습니다. 일치하는 셀에 서식을 추가하기 만하면됩니다. 단순히'*'문자를 찾지 않고 아무 것도 대치 할 수 없기 때문에'*'만 제거하고 OP의 목적이 아닌 다른 모든 셀의 내용은 그대로 둡니다. '* '를 포함하는 모든 셀을'0 '으로 대체해야합니다. 서식을 사용하면 해당 셀을 식별하고 동시에 모두 처리 할 수 ​​있습니다. – Jerry

+0

오, 처음 질문을 잘못 읽었습니다. 정확히 "*"가 포함 된 셀을'0' "으로 바꾸는 대신"*를 포함하는 모든 셀을'0' "로 바꾸는 것으로 생각했습니다. 네가 옳아 – jambriz