본문 바로가기

엑셀

(13)
엑셀 VBA 두개의 시트를 비교하여, 그 결과를 새로운 파일을 생성하여 기록해주는 매크로 함수(비주얼 베이직, 매크로, 시트 비교) Sub CompareWorksheets(ws1 As Worksheet, ws2 As Worksheet) Dim r As Long, c As Integer Dim lr1 As Long, lr2 As Long, lc1 As Integer, lc2 As Integer Dim maxR As Long, maxC As Integer, cf1 As String, cf2 As String Dim rptWB As Workbook, DiffCount As Long Application.ScreenUpdating = False Application.StatusBar = "리포트 생성..." Set rptWB = Workbooks.Add Application.DisplayAlerts = False While Worksheet..
엑셀 간단한 자료 입력 시간 자동 기록 매크로 (입력 / 수정 실시간 자동 감지 기록 Timestamp, 날짜 시간 자동 입력) 엑셀 매크로로 작성한 간단한 입력 / 수정 감지 시간 자동 기록 매크로입니다. 해당 시트에 입력 / 수정이 이루어지면 바로 옆 셀에 현재 시간을 자동으로 입력해줍니다. ​[ 매크로 저장 ] 1. 알트(Alt) + F11키를 눌러 비주얼 베이직 창을 열고, 매크로를 적용할 시트명을 클릭해서 선택해줍니다. ​2. 아래 매크로를 복사/붙여넣기 한 후 알트(Alt) + Q를 눌러 워크시트 화면으로 돌아 온 다음 자료를 입력 해줍니다. ​ [ 사용법 ]​ 1. 매크로를 설정한 시트 A행에 자료를 입력하면 B행에 "yyyy/mm/dd hh:mm:ss" 형식으로 날짜 / 시간이 입력 됩니다. ​ 2. 다른 시트에서도 사용하고 싶다면, 시트탭에서 우측 버튼을 누르고, 시트 > 이동/복사 클릭으로 시트를 복사해준 다음 ..
엑셀 셀에 있는 문장 단어로 여러 셀에 나누기, 여러 셀에 있는 단어들 한 셀에 문장으로 합치기(문자열 나누기, 합치기) 엑셀을 사용하다 보면 셀에 있는 문자열을 나누거나 합치는 것이 필요 할 때가 있습니다. 그 때 사용 할 수 있는 매크로로 txtSplit 과 txtJoin 라고 명명한 함수를 소개하겠습니다. ​간만에 윤동주 님의 아름다운 시, 윤동주님의 서시를 감상해보겠습니다! 문장을 단어로 나누기 '서시' 한 문장이 각 셀마다 아래와 같이 들어 있다고 하면, txtSplit 함수를 실행하면 문장을 공백(스페이스)로 구분하여 각각의 셀에 입력 됩니다. [사용법] 셀 선택 후 txtSplit 매크로 실행 Sub txtSplit() ' 문자열을 공백(Space)로 분할. ' 선택한(액티브 된) 셀. Dim strings As Variant ' 문자열을 배열로 지정 Dim c As Integer ' 문자열의 카운터 '빈셀이 ..
엑셀 시트 이름 한꺼번에 바꾸기 매크로(VBA 일괄 변경) 엑셀 작업 중 많은 시트 이름을 한번에 바꿀 필요가 있을 때 사용하는 매크로입니다. 메인 시트를 제외하고는 이름을 전부 바꿔 줍니다. (매크로, 첨부파일 참조) 아래 매크로에 대한 설명을 참조하시면, 전체 시트의 이름을 바꿀 수도 있고, 시트 이름도, 자신이 원하는 형태로 바꿀 수 있습니다. 예제에서는 변경할 이름으로 몇 월 인지를 입력하면, 날짜를 더해주는 방법으로 바꿔줍니다. (시트의 숫자가 27개 혹은 30개 이내일 경우) For i = 1 To Application.Sheets.Count '첫번째 시트부터 선택 Application.Sheets(i).Name = newName & i '입력받은 이름에다 i(1부터)값을 더해 새이름 지정 Next 아래는 개발도구 메뉴 보이기 & 매크로 실행 버튼 만..
엑셀 문자열을 공백, 콤마, 따옴표로 분할하는 매크로(문자열 분할, 콤마, 스페이스, 따옴표) 엑셀로 작업을 하다보면 셀에 있는 문자열을 구분해서 분리 해야 할 때가 있습니다. 보통 공백이나, 콤마, 따옴표 등의 문자로 구분된 문자열을 각각의 셀로 이동시켜 작업해야 하는 경우 유용한 매크로 입니다. Sub SplitColumnData() Dim LastPopulatedRow As Long, MyString As String Dim StringPart() As String, ColIndex As Long Dim MinArrSubscript As Integer, MaxArrSubscript As Integer LastPopulatedRow = Cells(Rows.Count, 1).End(xlUp).Row 'Loop through each populated cell in column A행의 처음부터 끝..
근무일자 자동 계산 수식 (토요일, 일요일, 공휴일) 휴무 포함 계산 가능 네이버지식iN에 주말과 휴일을 고려해서 일하는 날짜를 구하는 방법을 묻는 질문이 올라 왔길레, 인테넷을 열심히 서핑하여 정말 딱 맞는 함수와 매크로를 찾아 수정해서 올리려고, 하는 순간... 아뿔싸, 왠 고수들이 그리 많은지 벌써 3개나 글이 달려 있는지라, 답글을 다는 것은 그만두고, 내용을 정리해서 이곳에 정리해둡니다. 엑셀의 내부 함수를 이용하는 것인데요, 아주 깔끔하고 간단하게 수식 한 줄이면 해결 됩니다. =NETWORKDAYS.INTL(StartDate, EndDate, [Weekend], [Holidays]) ▶실제 사용 함수 =NETWORKDAYS.INTL(B2, C2, 17, $G$2:$G$17 ) 시작일, 완료일, 숫자(17), 공휴일 : 시작일과 완료일 사이의 날과 토요일(17)이 작..
엑셀 시트 한번에 여러개 신규, 복사 해서 만드는 매크로( 신규 생성, 복사 생성) 엑셀로 작업을 하다보면 한번에 많은 시트를 새로 만들거나, 기존 시트를 여러개 복사해야 할 때가 있습니다. 그 때 사용하는 매크로입니다. ​첫번째는 새로 여러개의 시트를 한 번에 생성하는 매크로 1. 생성할 시트 이름을 미리 아래와 같이 입력 한 다음,2. 시트 일괄 생성을 클릭하여, 입력해 둔 셀들을 선택한 다음 확인을 클릭하면 새로운 시트가 일괄 생성 됩니다. Sub CreateSheets() Dim rng As Range Dim cell As Range Dim str As String On Error GoTo Errorhandling '선택 박스 Set rng = Application.InputBox(Prompt:="시트 생성을 위한 레인지를 선택해주세요~!:", _ Title:="Create sh..
엑셀 현재 작업 워크시트 파일에 다른 파일의 시트들을 불러와 합치는 매크로 함수(시트 불러오기, 시트 머지, 시트 병합, 시트 합치기) 엑셀로 작업 할 때 다른 파일의 시트들을 불러와 합쳐서 작업해야 할 때 시트를 복사 / 이동하는 방법과 한꺼번에 파일 전체 시트를 불러와 합쳐주는 매크로 함수 입니다. 복사 해야 할 시트가 많지 않은 경우 1. 이동 / 복사 할 대상 엑셀 파일을 열어 둔 다음 아래와 같이 시트 탭에서 우측 버튼을 누르고, 2. 이동 / 복사 메뉴에서 현재 시트들을 이동 시킬 대상 파일을 선택 한 다음, ​ 3. 시트 들이 복사 / 이동 했을 때의 위치를 정해준 후 복사본 만들기를 체크 해 주고 확인 버튼을 누르면 선택한 엑셀 파일로 선택 한 시트 들이 복사됩니다. 복사 해야 할 시트가 많을 때 시트가 많아 일일이 복사하기가 번거로울 때 한번에 시트들을 불러와 합쳐주는 매크로 함수입니다.(시트 병합, 시트 머지) ​[ 매..

반응형