엑셀 숫자 추출 매크로 - egsel susja chuchul maekeulo

나눔터  

  HOME > 나눔터 > 묻고답하기 > 엑셀

    나눔터 홈
    묻고답하기

  • 엑셀
  • 워드
  • 액세스
  • 파워포인트
  • 아웃룩
  • 원노트
  • 오피스공통
    MVP

  • MVP 안내
  • MVP 명예의 전당
  • MVP 카페
    MY나눔터

작성자:  

 상수기 (tabby75)

추천:  0
파일:     조회:  5118
제목:   [긴급] vba에서 문자값을 숫자값으로 전환하는 방법
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

1. 엑셀 버전(95,97,2000,2002):2000
2. 윈도우즈의 버전(win95,win98,winME,winNT,win2000,winXP):win2000
3. CPU (486,PentiumI/II/III/IV...):PentiumIV
4. RAM (32,64,128,256,512MB,1G...): 256

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

vba코드에서 문자추출함수로 추출된 문자형숫자를 숫자로 변환해 주는
방법이 궁금합니다.
worksheet에서 value함수와 같은 역할을 하는 것이요..

설문을 받았는데, 설문 내용중에 있는 숫자값만 추출해야 하거든요.
대략 1000건정도 되어서 수작업으로는 힘들것 같습니다.

고수님들의 도움 부탁 드립니다.

[불량 게시물 신고]  

황기성
val

그럼...행운이 있으시길...!

06-29 (11:04)
삭제 ■신고

골든(신규)
오굿 저가 답변할려고 했는디... 06-29 (11:04)
삭제 ■신고
상수기
빠른답변 정말 감사드립니다. 헌데 잘 안되네요.
소스좀 확인해 주세요...
하려는 작업은 본문에 간략히 적었습니다.

Range("a1").Select

r = ActiveCell.CurrentRegion.Rows.Count

For i = 1 To r  (마지막 행까지 진행되도록.. )

v = Cells(i, 1).Value
s = Len(v)  (첫번째 값의 문자갯수를 추출했구요.)
  For j = 1 To s (문자갯수만큼
    a = Mid(v, j, 1) ( 하나씩 추출하고자 합니다.)    
    If WorksheetFunction.IsNumber(a) = True Then
       (추출한 문자를 숫자인지 비교해야 하는데, 
        여기서 자꾸 걸리네요.)
          b = b & Mid(v, j, 1)
    End If
  Next j
  Cells(i, 2).Value = b

Next i
End Sub

06-29 (11:10)
삭제 ■신고
WorksheetFunction.IsNumber 을 그냥 IsNumeric 으로 바꾸시면 되실 껍니다. 그럼 잘 되시길... 06-29 (11:26)
삭제 ■신고
비포앤에프터
중간에..

If IsNumeric(a) = True Then     으로 함 해보세요.

06-29 (11:29)
삭제 ■신고
상수기
으아~~~ 좋아요 좋아요 너무 좋아요. ^^
정말 너무너무너무 감사해요~
이렇게 간단히... 해결되다니...
너무너무 고맙습니다. ^^ 氣님의 팬이 될랍니다.
06-29 (11:31)
삭제 ■신고
자세히 보니 초기화도 안되어 있네요. 문자열에서 숫자만 골라내는 소스인 것 같은데요. 다음과 같이 하시면 됩니다. 연습할 때는 모르겠지만 질문 주실 때는 변수는 꼭 선언해 주시고 나서 질문 주시기 바랍니다.

Range("a1").Select

r = ActiveCell.CurrentRegion.Rows.Count

For i = 1 To r  '(마지막 행까지 진행되도록.. )

v = Cells(i, 1).Value
s = Len(v)  '(첫번째 값의 문자갯수를 추출했구요.)
  For j = 1 To s '(문자갯수만큼
    a = Mid(v, j, 1) '( 하나씩 추출하고자 합니다.)
    If IsNumeric(a) Then
       '(추출한 문자를 숫자인지 비교해야 하는데,
        '여기서 자꾸 걸리네요.)
          b = b & Mid(v, j, 1)
    End If
  Next j
Cells(i, 2).Value = b
b = ""
Next i

06-29 (11:32)
삭제 ■신고
상수기
^^세심한 배려 감사드립니다.
변수선언부까지 들어가면 너무 긴것 같아서 뺐구요.
초기화는 한번 돌려보고나서 결과보구는 얼른 했습니다. ^^
제가 이렇네요. ^^
그럼 좋은하루 되세요.
( 이제서야 기뻐서 들떴던 마음이 좀 진정되는군요.. )
06-29 (11:40)
삭제 ■신고
상수기
감사합니다. 엑사모 당근 알지요.. ^^
꼭 확인해 보겠습니다.
06-29 (12:01)
삭제 ■신고
        

작성일 : 2004-06-29(11:01)
최종수정일 : 2004-06-29(11:01)

Toplist

최신 우편물

태그