엑셀팁 (26)
엑셀팁 - 엑셀파일복구 - xml오류
반응형
약 1주 간격으로 엑셀 파일 2개가 오류가 생겼습니다.
숫자는 나오는데, 글자가 보이지 않고 온데 간데 없었습니다.

첫 파일은 어쩔 수 없이 꾸역꾸역 새로 분석작업을 했습니다만, 오늘 또 이런 현상이 발생되었습니다.
짜증 나서 일찍 퇴근 후 인터넷 검색으로 해결방법을 찾아 나셨습니다.
하지만 네이버 지식인 코너에서 해법을 찾아보니......



치명적 오류라며 새로이 만들라는 권유뿐 이더군요. 

아래는 네이버 지식인 코너에 질문으로 올려진 내용입니다.

휴.... 큰일입니다.
업무상자료가... 날아갔습니다.
파일을 열면 sheet는 그대로 있는데 내용들이 모조리... 사라져버렸습니다.
정말 꼭 필요한 자료라 그것만이라도 복구를 해야하는데 어쩌죠?
아래는 오류박스창에 뜬 내용입니다.
 
 
 
_____으로 복구라며 박스에 뜬 내용입니다.
파일 수준 유효성 검사 및 복구가 완료되었습니다. 이 통합 문서의 일부 요소가 복구되거나 삭제되었을 수 있습니다.
바뀐 요소: XML 오류가 있는 /xl/worksheets/sheet4.xml 부분.  예기치 않은 입력의 끝입니다. 2 행, 2044 열.
제거된 레코드: /xl/workbook.xml 부분의 워크시트 속성 (통합 문서)




구글 검색을 통해 임시방편을 찾아 냈습니다.
자세한 내용은 이곳에서 알아보시기 바랍니다. <= 저의 경우, 이 방법이 통하지 않더군요.

아래의 무식한 방법으로 부분적으로 복구 완료 했습니다.

XL2000: 손상된 엑셀 파일 복구하는 방법

이 문서는 이전에 다음 ID로 출판되었음: KR214253

이 페이지에서

요약

Microsoft Excel에서는 파일에 연결된 외부 참조를 사용하여 손상된 파일에서 값을 추출할 수도 있습니다.

추가 정보

손상된 파일에서 값을 추출하려면 다음 방법 중 하나를 사용합니다.

방법 1

  1. 파일 메뉴에서 열기를 누릅니다. 그런 다음 현재 폴더에서 손상된 파일이 있는 폴더를 찾고취소를 누릅니다.
  2. 파일 메뉴에서 새로 만들기를 누르고 통합 문서를 누른 다음 확인을 누릅니다.
  3. 새 통합 문서의 A1 셀에 =File Name!A1을 입력합니다. 여기서 File Name은 손상된 통합 문서의 이름입니다. 시트 선택 대화 상자가 나타나면 적절한 시트를 선택하고 확인을 누릅니다.
  4. A1 셀을 선택하고 편집 메뉴에서 복사를 누릅니다. 그런 다음 손상된 파일의 데이터가 있는 셀의 범위와 거의 같은 크기의 영역을 선택하고 편집 메뉴에서 붙여넣기를 누릅니다.
  5. 이 셀 범위가 여전히 선택된 상태에서 편집 메뉴의 복사를 누릅니다.
  6. 편집 메뉴에서 선택하여 붙여넣기를 누릅니다. 을 선택하고 확인을 누릅니다.
다음 단계에서는 손상된 파일의 연결을 제거하고 데이터만 남깁니다.

방법 2

  1. 파일 메뉴에서 새로 만들기를 누르고 통합 문서를 누른 다음 확인을 누릅니다.
  2. 1단계를 반복하여 두 번째 새 통합 문서를 만듭니다.
  3. 첫 번째 통합 문서에서 A1 셀을 선택합니다. 그런 다음 편집 메뉴에서 복사를 누릅니다.
  4. 두 번째 통합 문서로 전환하여 A1 셀을 선택합니다. 그런 다음 편집 메뉴에서 선택하여 붙여넣기를 누르고 연결하여 붙여넣기를 누릅니다.
  5. A1 셀을 선택하고 수식에서 달러 기호를 제거합니다. 

    예를 들어, 수식 입력줄에 다음과 같은 텍스트가 나타나면
    =[Book13]Sheet1!$A$1
    달러 기호를 제거합니다. 그러면 수식 입력줄에 다음과 같은 텍스트가 표시됩니다.
    =[Book13]Sheet1!A1
  6. A1 셀을 선택하고 편집 메뉴에서 복사를 누릅니다.
  7. 손상된 파일의 데이터가 있는 셀 범위와 거의 같은 크기의 영역(예: A1:H100)을 선택한 다음편집 메뉴에서 붙여넣기를 누릅니다.
  8. 이 셀 범위가 선택된 상태에서 편집 메뉴에서 연결을 누릅니다.
  9. 연결 대화 상자에서 첫 번째 통합 문서 이름을 선택하고 원본 변경을 누릅니다. 연결 변경대화 상자가 나타나면 손상된 파일을 선택하고 확인을 누릅니다. 시트 선택 대화 상자가 나타나면 적절한 시트를 누르고 확인을 누릅니다.
  10. 연결 대화 상자에서 확인을 누릅니다.
  11. 셀 범위가 여전히 선택된 상태에서 편집 메뉴의 복사를 누릅니다.
  12. 편집 메뉴에서 선택하여 붙여넣기를 누릅니다. 을 선택하고 확인을 누릅니다.
이제 손상된 파일의 연결이 제거되고 데이터만 남습니다.




반응형
  Comments,     Trackbacks
엑셀팁 - 한글이 영어로 자동 변환(영어가 한글로 자동 변환)
반응형
엑셀(EXCEL)에 한글을 입력했는데, 영어로 자동변환되는 경우가 있습니다.
예를 들면, '한국AMS'로 입력했지만 '한국'으로 변한다는 말 입니다.
                '한국AMA'가 '한국'으로 변합니다.



이런 현상은 엑셀의 '한/영 자동고침'기능 때문 입니다.

'한/영 자동고침'기능을 해제하면, 위의 현상을 막을 수 있습니다.



마우스를 위 그림 왼쪽 상단 빨간색 원에 갖다 덴 후, 마우스 오른쪽을 클릭하여
'빠른 실행 도구 모음 사용자 지정'을 클릭하면 아래의 Excel옵션 그림1 처럼 뜹니다.



그림1

좌측 '언어 교정'을 클릭한 후, '자동 고침 옵션'을 클릭합니다.



'자동 고침' 화면에서 '한/영 자동고침'에 체크표시를 없애 주면 한글이 영어로 자동 변환되지 않습니다.



관련글 보기  
엑셀팁 - 100단위로 올림 혹은 내림 처리 함수
엑셀팁 - 시트를 다른 파일에 간단 복사 이동
엑셀팁 - 워크시트 숨기기
엑셀팁 - 미니 ERP 만들기1
엑셀팁- 2개의 데이터표를 응용하여 요율 찾기

반응형
  Comments,     Trackbacks
엑셀팁 - 100단위로 올림 혹은 내림 처리 함수
반응형


[ 올림 처리 함수 ]                         [ 내림 처리 함수 ]  
CEILING(number,significance)              FLOOR(number,significance)
    number: 올림 처리를 대상                    number: 내림 처리를 대상
  significance: 올림 처리를 할 배수            significance: 내림 처리를 할 배수  


반응형
  Comments,     Trackbacks
엑셀로 만든 가계부 - 항목수정법2
반응형
시간이 참으로 쏜 살같이 흘러 갑니다.
저의 부주의로 블로그 방문자의 요청을 깜박하고 지냈습니다.

왕십리 님께서 지난 8월초에 문의하신 내용을 아직까지 해결하지 못한채 방치 했습니다. 죄송합니다.

왕십리 님의 문의 내용은 2가지 입니다.
  1. 항목 변경시 월간항목별집계 내용과 연동하지 않는다
  2. 월 마감시 자동계산되지 않는다.

1번 항목은 이전에 올린 '엑셀로 만든 가계부 - 항목수정법'에서 설명하지 못한 부분 때문에 일어난 현상입니다. '가계부파일by Ray.xls'파일에는 여러 개의 sheet가 있는데, 단지 '항목정리' sheet상의 내용만 변경하는 것을 설명했기 때문입니다. 정상적인 연동이 될려면 '월간 항목별 소비현황' sheet의 항목도 같이 변경했어야 했던 것 입니다. 

변경 방법은 아래와 같이 하시면 됩니다.

월간항목별집계 내용과 연동하도록 조정하기
순서1. 만일 기존 '식비'항목을 '먹거리'로 변경한다고 가정했을 때, '항목정리'sheet에서 식비를 먹거리로 변경합니다(요기까지의 설명은 여기를 참고하세요). 사실 요기까지는 왕십리 님도 잘 적용하신 것 입니다.

엑셀가계부 '항목정리'엑셀가계부 '항목정리'sheet


엑셀가계부 - '월간항목별 소비현황'엑셀가계부 - '월간항목별 소비현황'sheet

순서2. '항목정리'에서 내용을 수정했다면, '월간 항목별 소비현황'에서도 식비를 먹거리로 변경해 주면 됩니다.  다만, 아래와 같은 문제가 예상됩니다.

만일 1월부터 7월까지는 '식비'라는 항목을 이용했고, 8월부터 '먹거리'라는 항목으로 수정했다면,
1월부터 7월까지의 가계부 내용 중에서 '식비'항목을 '먹거리'로 전부 수정해 주셔야 합니다.

순서3. 아래와 같은 그래픽이 나오는 부분에도 항목이 있습니다. 여기서도 '식비'를 '먹거리'로 변경해 주어야 합니다.


그래픽이 있는 '월간 항목별 소비현황'과 '한국 평균과 비교하기'sheet에 있는 '식비' 항목 선택 부분에 가서 오른쪽 마우스를 클릭하면 하위 메뉴에 '텍스트 편집'을 누릅니다.

그러고 나서 '먹거리'로 변경하면 됩니다.


월 마감시 자동계산하기
사실 엑셀가계부에 입력하면 그것으로 자동으로 계산되어야 합니다. 그러니 '입력완료 = 마감완료'가 되어야 한다는 이야기 입니다.
왕십리 님께서 남겨주신 문의사항에 대한 문제 파악이 아직 제대로 되지 않는군요.
만일 왕십리 님께서 다시 댓글에 구체적인 내용을 알려 주신다면, 그 때 다시 수정토록 하겠습니다.

관련글 보기  


반응형
  Comments,     Trackbacks
엑셀팁 - 시트를 다른 파일에 간단하게 복사 혹은 이동하기
반응형
시트의 내용 전체를 다른 파일에 옮길 때,
일반적으로 시트 전체 복사 후 해당 파일로 이동해서 붙여넣기를 합니다.

이 경우에는 해당 파일의 특성이 붙여넣기한 시트에 전적으로 적용되기도 힘들고,
복사 해서 붙이는 과정이 다소 투박해 보인다는 단점이 있습니다.

여기에서는 간단하지만 아주 요긴한 팁 하나를 소개하고자 합니다.


위와 같이 Book2의 '5월'시트를 '월별대리점별 현황'파일로 그대로 이동시켜 보겠습니다.



Boo2의 '5월'시트를 클릭한 후 오른쪽 마우스 버튼을 클릭합니다.
하위 메뉴의 '이동/복사'를 누르면,



현재 활성화되어 있는 모든 엑셀 파일이 나열된 것을 볼 수 있습니다.
여기서는 '월별대리점별 현황'이라는 엑셀 파일로 이동시키고자 하니, 해당 파일이름을 클릭합니다.



해당 파일 이름을 클릭하면, 위의 화면처럼 해당 파일에 있는 모든 시트가 보여집니다.
여기서 이동할 위치를 선정한 후 '확인'버튼을 눌러 줍니다.


모든 작업이 제대로 진행되었다면, '5월'이라는 시트가 '월별대리점별 현황'파일에 이동된 것을 볼 수 있습니다.
반응형
  Comments,     Trackbacks
Excel 기반의 간단한 공정표. PhBar v.6
반응형

엑셀을 이용하 생산공정표를 작성하는 방법에는 몇 가지 있습니다.
단순하게 시작 날짜와 종료 날짜를 입력하거나,
칸트차트를 이용하는 방법이 있습니다.

하지만 MS-PROJECT와 같이 기능 엑셀에 적용할려면, 풍부한 VBA기술을 알아야만 하는데,
여러 검색엔진을 통해 좋은 엑셀 공정 프로그램이 있어 소개합니다.

[PhBar] Excel 기반의 간단한 공정표. PhBar v.6

엑셀공정프로그램

PhBar는 Excel을 기반으로 간단한 BarChart (Gantt Chart) 작성 프로그램입니다

◆ Release note

**  2010.02.05 ----------------------------------------
- Duration 계산 기능 분리
- Diffence(공정차이) 기능 추가
- Actual Finish에 대한 예정일 기능 추가
- 공정표 범위를 벗어나는 Bar의 표시 방법 추가
- 몇가지 버그 수정


** 2009.12.어느날 -------------------------------------
- 인터넷에 게시

◆ 첨부파일
 PhBar_Sample공정표.xls
 PhBar_v6.xla

◆ 설치방법 (Excel 2003 기준)
1. 배포된 PhBar.xla 파일을 Office Library 폴더로 복사
   예) C:\Program Files\Microsoft Office\OFFICE11\Library
2. 엑셀을 다시 실행하고, 도구-추가기능
3. PhBar 를 선택하고 [확인]

◆ 기본 사용법
1. 모든 기능은 메뉴에서 사용 가능합니다.
2. 메뉴에서 [새공정표]를 선택하시면
   - 새로운 공정표 시트가 생성되고
   - Activity 정보를 입력할 수 있는 양식이 자동 생성  
  ※ 임의로 사용자가 만든 시트에는 공정표가 그려지지 않습니다
      하지만 일단 만들어진 시트는 수정할 수 있습니다
3. [양식(다시)그리기]기능에서 일간/주간/월간 및 일자를 입력하면
   - Bar Chart가 그려질 영역의 양식이 자동 생성
4. Activity 정보를 입력하고 [Bar새로고침]을 누르면 Barchart가 자동 생성

◆ 필드 설명
  - ID : Activity의 ID (생략가능)
  - Description : Activity의 명칭 또는 설명
  - Type : Activity의 유형.
           G-Activity Group, M-Milestone, A-Activity (Default)
  - Plan Start/Finish : 계획 시작일/종료일. 반드시 날짜 형식 사용
  - Actual Start/Finish : 실적 시작일/종료일. 생략시는 계획만 그려줌
  - Dur : Duration. Bar
  - Prog. : 실적 진도율
  - Diff. : 공정 차이 일수

◆ 자동계산 기능
- AF 예정일 : Actual Finish 날짜가 입력되지 않았을 경우 예정일 계산 수식을 자동으로 삽입
- Duration : Calendar Day 기준으로 계산하는 수식을 자동으로 삽입
- Difference : 공정차이일수를 계산하는 수식을 자동으로 삽입

◆ 특징
1. 주간공정표로 작성한 엑티비티, 일정, 진도를 그대로 둔상태에서 양식설정에서 월간을 변경하고 새로고침을 누르면 월간 공정표를 그려줍니다.
2. 완성된 공정표를 배포할때 파일에는 메크로가 포함되지 않습니다.
  >> 메크로 바이러스 확산을 방지하기 위해 .....
      그러므로 PHBar로 그려진 공정표에 메크로가 포함되어 있으면
      메크로 제외를 하고 여시면 됩니다
3. 프로그램은 엑셀VBA를 이용하여 추가기능으로 만들었습니다.
  그리고 잘못된 소스 수정으로 인하여 엑셀에 이상을 일으킬수 있으므로
  소스는 공개하지 않습니다.


◆  양식 수정하기
1. 양식의 수정은 엑셀파일이므로 엑셀의 기능을 이용하여 수정하면 됩니다.
   - 상단의 행을 추가 또는 삭제
   - 컬럼의 배열 순서를 변경. 추가 정보를 관리할 컬럼 추가

2. 수정된 양식을 PhBar 프로그램에서 제대로 인식하기 위해 설정정보를 별도로 저장해야 합니다.
   양식의 설정정보는 Sheet 내의 보이지 않는 영역에 별도로 저장됩니다.(CustomProperty)
   양식과 설정 정보가 맞지 않을 경우 정상적으로 공정표가 그려지지 않습니다.


  - 타이틀 시작행 : Activity의 타이틀이 표시된 행을 지정합니다. Default = 4
  - Act.Data 시작행 : Activity Data가 나오는 첫번째 행. Default = 6


  - Activity ID : Activity ID로 사용되는 열. Default =1
  - Activity Desc : Activity Description으로 사용되는 열. Default=2
  - Activity Type : Activity Type으로 사용되는 열. Default=3
  - Planed Start Date : 계획 시작일로 사용되는 열. Default=4
         해당열로 부터 Start, End, Dur 이 연속으로 위치해야 합니다.
  - Actual Start Date : 실적 시작일로 사용되는 열. Default=7
         해당열로 부터 Start, End, Dur, Prog 가 연속으로 위치해야 합니다.
  - Barchart 그리기 시작 : Activity 정보가 표시된 열 다음으로 Barchart가 그려질 첫번째 영을 지정.
        Default = 12. Default로 Activity 정보 다음에 빈 컬럼이 추가로 하나 삽입됨.


  - 공정표 종류 : 현재 그려진 공정표의 종류를 지정. Default = 주간
  - 공정표 기간(주/개월) : 공정표가 그려질 영역의 기간. Default =3
      . 일간, 주간 공정표의 경우 주단위, 월간 공정표의 경우 개월 단위.
      . 해당 기간을 초과하는 일정의 경우 해당 기간까지만 공정표를 그려줍니다.
  - Activity 최대 갯수 : Activity의 최대 갯수. Default=100
      . 해당 Activity 갯수를 초과하는 행에 표시된 내용은 공정표를 그리지 않습니다.
      . 최대갯수 이내라도 Activity ID, Description의 빈행이 5개 이상일 경우
        그 이하로는 공정표를 그리지 않습니다.

FAQ
1.  다시그리기시에 오류메세지
   # Error : 날짜(Start, Finish) 또는 진도율(Prog)의 데이터 형식을 확인바랍니다. 행번호 = xx

>> 시작일, 종료일 등의 날짜 정보의 데이터 형식은 반드시 날짜 형식이어야 합니다.
   날짜 형식인지 여부를 확인하려면 셀 계산으로 해당 내용 + 1을 해보면 다음 날짜가 결과로 나와야 합니다. (문자열로 된 날짜는 사용불가)
>> [설정]에서 날짜 컬럼이 정상적인지, Data 시작행이 이상이 없는지 확인해야 합니다.

2. 추가정보를 관리하고자 합니다. 어떻게 해야 하나요 ?

>> 엑셀 양식을 수정하여 추가로 관리할 필드를 추가한 후, [설정]에서 정보를 맞추어 줍니다.


3. Activity 간의 선후행을 지정할 수 있나요 ?

>> 직접적으로 해당 기능을 제공하지는 않습니다.
  하지만 엑셀의 기능을 이용하여 날짜를 입력할 때 다른 Activity의 날짜 + 1 과 같은 형태로 입력하면 비슷하게 사용할 수 있습니다.

원문 출처 : 자유느낌! 원문 보기

 

반응형
  Comments,     Trackbacks
엑셀팁 - 일련번호 부여 방법
반응형
올해부터 전자세금계산서 발행이 시작되었습니다.
세금계산서의 처리가 용이(시행 전에는 일일이 우편으로 발송하거나, 납품시 전달하는 방식에서 이메일로 세금계산서 전달 방식으로 변화)하게 됨에 따라 일괄 발행에서 건별 발행으로 업무가 진행되고 있는 듯 합니다. 물론 발행비용이 ZERO이거나 아주 아주 저렴할 경우에 한해서 입니다.

동일한 업체(아래 그림 D열) 중에서 같은 것이 있으면, 일련번호(E열) 열에 2,3,4,..처럼 번호를 매기는 방법을 COUNTIF 엑셀함수를 통해서 나타내는 방법을 올립니다.

E5셀에 아래와 같이 입력하여 밑으로 주욱 드래그하면 됩니다.
IF(D5="","",COUNTIF($D$5:D5,D5))

참고
1. '$D$5'는 D5셀을 클릭한 후, F4번 키이를 누르면 됩니다.
2. C열의 No. 1,2,3,4,5,.... 은 SUBTOTAL함수를 적용합니다.


본 내용은 오피스 튜터 MVP이신 권현욱(엑셀러)님께서 작성하신 '품목별 일련번호를 매길 수 있는 방법'를 전자세금계산서 발행 건수에 사례로 전환하여 포스트 작성을 하였습니다.

권현욱님께서는 단순히 함수의 정의만 외우고 있어서는 실제 적용에 한계가 있음을 주장하고 있습니다. 즉 함수의 이름을 알고 있는 것이 중요한 것이 아니라 함수의 속성과 본질을 잘 이해해야 한다는 점 입니다.
함수의 속성과 본질을 이해함에 따라서 그 응용력이 생기고 확대된다는 것 입니다.
반응형
  Comments,     Trackbacks
레이의 VBA정복기7- 숫자를 영어로 변환하는 방법
반응형
지난 글 '레이의 VBA정복기6- 숫자를 한글 또는 한자로 변환하는 법'에서 엑셀 함수 'NUMBERSTRING'를 이용하면 될 것을 굳이 VBA코드로 작업한 이유로 '다음에 올릴 예정인 포스트와 연관되어 있습니다'라고 밝혔습니다.

인터넷 검색을 통해서 알아본 결과, 숫자를 한글 또는 한자로 변환하는 방법을 많이 얻을 수 있습니다(이곳에 가시면 NUMBERSTRING함수 이외에 다양한 방법이 있음). 그러나 숫자를 영어로 변환하는 방법에 대한 검색 결과는 VBA코드를 이용하는 방법외에는 없었습니다.
이런 이유로 '레이의 VBA정복기6'를 올리게 된 것 입니다.

좌우지간, 엑셀에서 숫자를 영어로 전환하는 VBA코드을 아래와 같이 올립니다.
아래의 코드를 '레이의 VBA정복기6- 숫자를 한글 또는 한자로 변환하는 법'에 설명된 방법대로 설정하시면 됩니다.

Option Explicit
 'Main Function
 Function SpellNumber(ByVal MyNumber)
     Dim Dollars, Cents, Temp
     Dim DecimalPlace, Count
     ReDim Place(9) As String
     Place(2) = " Thousand "
     Place(3) = " Million "
     Place(4) = " Billion "
     Place(5) = " Trillion "
     ' String representation of amount.
     MyNumber = Trim(Str(MyNumber))
     ' Position of decimal place 0 if none.
     DecimalPlace = InStr(MyNumber, ".")
     ' Convert cents and set MyNumber to dollar amount.
     If DecimalPlace > 0 Then
         Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
                   "00", 2))
         MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
     End If
     Count = 1
     Do While MyNumber <> ""
         Temp = GetHundreds(Right(MyNumber, 3))
         If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
         If Len(MyNumber) > 3 Then
             MyNumber = Left(MyNumber, Len(MyNumber) - 3)
         Else
             MyNumber = ""
         End If
         Count = Count + 1
     Loop
     Select Case Dollars
         Case ""
             Dollars = "No Dollars"
         Case "One"
             Dollars = "One Dollar"
          Case Else
             Dollars = Dollars & " Dollars"
     End Select
     Select Case Cents
         Case ""
             Cents = " and No Cents"
         Case "One"
             Cents = " and One Cent"
               Case Else
             Cents = " and " & Cents & " Cents"
     End Select
     SpellNumber = Dollars & Cents
 End Function
      
 ' Converts a number from 100-999 into text 
 Function GetHundreds(ByVal MyNumber)
     Dim Result As String
     If Val(MyNumber) = 0 Then Exit Function
     MyNumber = Right("000" & MyNumber, 3)
     ' Convert the hundreds place.
     If Mid(MyNumber, 1, 1) <> "0" Then
         Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
     End If
     ' Convert the tens and ones place.
     If Mid(MyNumber, 2, 1) <> "0" Then
         Result = Result & GetTens(Mid(MyNumber, 2))
     Else
         Result = Result & GetDigit(Mid(MyNumber, 3))
     End If
     GetHundreds = Result
 End Function
      
 ' Converts a number from 10 to 99 into text. 
 Function GetTens(TensText)
     Dim Result As String
     Result = ""           ' Null out the temporary function value.
     If Val(Left(TensText, 1)) = 1 Then   ' If value between 10-19...
         Select Case Val(TensText)
             Case 10: Result = "Ten"
             Case 11: Result = "Eleven"
             Case 12: Result = "Twelve"
             Case 13: Result = "Thirteen"
             Case 14: Result = "Fourteen"
             Case 15: Result = "Fifteen"
             Case 16: Result = "Sixteen"
             Case 17: Result = "Seventeen"
             Case 18: Result = "Eighteen"
             Case 19: Result = "Nineteen"
             Case Else
         End Select
     Else                                 ' If value between 20-99...
         Select Case Val(Left(TensText, 1))
             Case 2: Result = "Twenty "
             Case 3: Result = "Thirty "
             Case 4: Result = "Forty "
             Case 5: Result = "Fifty "
             Case 6: Result = "Sixty "
             Case 7: Result = "Seventy "
             Case 8: Result = "Eighty "
             Case 9: Result = "Ninety "
             Case Else
         End Select
         Result = Result & GetDigit _
             (Right(TensText, 1))  ' Retrieve ones place.
     End If
     GetTens = Result
 End Function
     
 ' Converts a number from 1 to 9 into text. 
 Function GetDigit(Digit)
     Select Case Val(Digit)
         Case 1: GetDigit = "One"
         Case 2: GetDigit = "Two"
         Case 3: GetDigit = "Three"
         Case 4: GetDigit = "Four"
         Case 5: GetDigit = "Five"
         Case 6: GetDigit = "Six"
         Case 7: GetDigit = "Seven"
         Case 8: GetDigit = "Eight"
         Case 9: GetDigit = "Nine"
         Case Else: GetDigit = ""
     End Select
 End Function


반응형
  Comments,     Trackbacks
최근 작성 글
최근 작성 댓글
최근 작성 트랙백
프로필
공지사항
글 보관함
캘린더
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
TODAY TOTAL