전체 기초데이터에서 조건에 맞는 데이터만 불러와서 명단(출석부 등) 동적 생성
기초데이터에서 조건에 맞는 데이터만 가져와서 명단(출석부, 등록부 등) 만들기 매크로
Sub Import()
Application.ScreenUpdating = False
'불러온 데이터부분 양식 범위를 초기화한다.
Range(Cells(4, 1), Cells(500, 8)) = ""
'numb, locat 변수 초기값 설정
numb = 1
locat = 4
'데이터가 있는 셀의 수를 계산하여 데이터가 있는 셀까지 For 문을 돌린다.
'MsgBox (Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row) 맨 마지막 셀까지 For 문
For i = 2 To Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
'조건은 시트2에 걸고, 불러올 기초데이터는 시트1에 있음. 6번째 열 i번째 행이 조건에 맞으면
If Sheets(2).Cells(3, 11) = Sheets(1).Cells(i, 6) Then
Sheets(2).Cells(locat, 1) = numb
Sheets(2).Cells(locat, 2) = Sheets(1).Cells(i, 7) '출신학교
Sheets(2).Cells(locat, 3) = Sheets(1).Cells(i, 2) '접수번호
Sheets(2).Cells(locat, 4) = Sheets(1).Cells(i, 3) '성명
Sheets(2).Cells(locat, 5) = Sheets(1).Cells(i, 1) '수험번호
Sheets(2).Cells(locat, 6) = Sheets(1).Cells(i, 9) '시험장명
Sheets(2).Cells(locat, 7) = Sheets(1).Cells(i, 10) '시험실
locat = locat + 1
numb = numb + 1
'End If
'End If
End If
Next i
' 모든 데이터를 불러온 후 이하 여백 표시
Sheets(2).Cells(locat, 2) = "- 이하 여백 -"
' 불러온 데이터 수를 알려줌
MsgBox (Sheets(2).Cells(3, 11) & "에서 접수한 " & locat - 4 & "명을 불러왔습니다.")
' 유동적으로 인쇄영역을 설정하기 위해 페이지 레이아웃 설정을 한다.
Dim PrintOutRange As String
PrintOutRange = "A1:H" & locat + 1
Dim MyPrintArea As Range
Set MyPrintArea = ActiveSheet.Range(PrintOutRange)
ActiveSheet.PageSetup.PrintArea = PrintOutRange
End Sub
'업무 활용 엑셀' 카테고리의 다른 글
엑셀 VBA 자료(학교명을 참석자수만큼 반복시키기) (0) | 2018.11.28 |
---|---|
엑셀 VBA 마지막 행과 열의 수 찾기 (0) | 2018.10.26 |
엑셀 문자열에서 숫자만 계산하기 (0) | 2018.10.26 |
엑셀에서 텍스트 문자열의 숫자를 제거하는 방법 (0) | 2018.10.18 |
엑셀에서 0 표시 없애기 (0) | 2018.10.09 |
엑셀 문자열(문자 + 숫자)에서 숫자만 계산하기
문자열에서 문자와 숫자 구성이 다음과 같이 입력되어 있을 때, 숫자만 추출하여 합계를 낸다.
입력서식은 A1 셀값에 전북 50, 충북 20, 서울 100 이라고 입력되었을 경우
VBA 모듈 추가 후 A2 셀값에 =SumNumbers(A1) 이라고 입력하면
사용자 함수를 통해 문자열 중 숫자만 추출하여 170이라는 결과값을 얻는다.
VBA 코드
Function SumNumbers(rngS As Range, Optional strDelim As String = " ") As Double
'Update 20141210
Dim xNums As Variant, lngNum As Long
xNums = Split(rngS, strDelim)
'MsgBox (xNumbs)
For lngNum = LBound(xNums) To UBound(xNums) Step 1
SumNumbers = SumNumbers + Val(xNums(lngNum))
Next lngNum
End Function
사용자 함수 호출로 인한 결과화면
반드시 입력데이터 구성이 TEXT1 숫자1, TEXT2 숫자2, TEXT3 숫자3 이런식으로 구성되어 있어야 한다.
출처: 구글링 해서 찾았는데, 출처 Log를 기록하지 못했습니다.
'업무 활용 엑셀' 카테고리의 다른 글
엑셀 VBA 자료(학교명을 참석자수만큼 반복시키기) (0) | 2018.11.28 |
---|---|
엑셀 VBA 마지막 행과 열의 수 찾기 (0) | 2018.10.26 |
엑셀 VBA 수능시험장 배치 현황 작성용 매크로(명단 작성용) (0) | 2018.10.26 |
엑셀에서 텍스트 문자열의 숫자를 제거하는 방법 (0) | 2018.10.18 |
엑셀에서 0 표시 없애기 (0) | 2018.10.09 |
'틈틈이 활용팁' 카테고리의 다른 글
NGINX 를 통한 PC 내 웹서버 운영 (0) | 2018.11.29 |
---|---|
원격접속 프로그램 - AeroAdmin (0) | 2018.11.21 |
윈도우 10 임시파일 Temp 지우는 법 (0) | 2018.11.07 |
파일 이름 변경 프로그램 ReNamer Ver 6.9 (0) | 2018.11.05 |
윈도우 10 한글 2014 설치시 .NET Framework 3.5 설치 오류(0x800F00950) (0) | 2018.11.02 |
수능 자료집(부록) 작성과 관련하여 다음과 같은 예제에서 숫자만 제거 하고 싶었다.
1) 수학영역 가17/X9 → 가/X
2) 탐구영역 과탐12/직탐4/X10 → 과탐/직탐/X
구글 검색한 결과 다음과 같은 vba 코드를 구할 수 있었다.
Function
RemoveNumbers(Txt
As
String
)
As
String
With
CreateObject(
"VBScript.RegExp"
)
.Global =
True
.Pattern =
"[0-9]"
RemoveNumbers = .Replace(Txt,
""
)
End
With
End
Function
제거할 셀을 RemoveNumbers() 함수의 매개변수로 넣어 다른 셀에서 숫자를 삭제한 값을 얻는다.
사용수식: =RemoveNumbers(A2)
출처: https://www.extendoffice.com/ko/documents/excel/3243-excel-remove-numbers-from-strings.html
'업무 활용 엑셀' 카테고리의 다른 글
엑셀 VBA 자료(학교명을 참석자수만큼 반복시키기) (0) | 2018.11.28 |
---|---|
엑셀 VBA 마지막 행과 열의 수 찾기 (0) | 2018.10.26 |
엑셀 VBA 수능시험장 배치 현황 작성용 매크로(명단 작성용) (0) | 2018.10.26 |
엑셀 문자열에서 숫자만 계산하기 (0) | 2018.10.26 |
엑셀에서 0 표시 없애기 (0) | 2018.10.09 |
방법 1. 셀서식 - 표시형식 - 사용자 지정 - 형식(T) : #,###;-#,###;;@ 라고 입력
방법 2. 파일 - 옵션 - 고급 - 0값이 있는 셀에 0 표시(Z) 체크를 해제한다.
'업무 활용 엑셀' 카테고리의 다른 글
엑셀 VBA 자료(학교명을 참석자수만큼 반복시키기) (0) | 2018.11.28 |
---|---|
엑셀 VBA 마지막 행과 열의 수 찾기 (0) | 2018.10.26 |
엑셀 VBA 수능시험장 배치 현황 작성용 매크로(명단 작성용) (0) | 2018.10.26 |
엑셀 문자열에서 숫자만 계산하기 (0) | 2018.10.26 |
엑셀에서 텍스트 문자열의 숫자를 제거하는 방법 (0) | 2018.10.18 |