PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2019/07/17 11:01:05
Name 산양
File #1 2019_07_17_11;01;05.PNG (49.0 KB), Download : 13
Subject [질문] vba 질문드립니다


연습삼아 공정관리표를 스스로 만들어보고 있습니다.


구현하고자 하는 요소는 다음과 같습니다.
1. 기존에 입력된 월/일/요일 삭제 + 서식 및 셀 병합 초기화
2. 특정 셀에 입력된 연도를 받아와 월/일/요일을 열을 거쳐가며 입력


현재 막힌 지점은 다음과 같습니다.
1. (구현 요소 1.)까진 작동하나, 2.를 구현하기 위해 삽입한 이중for문이 제대로 작동하지 않아 데이터가 입력된 마지막 열의 데이터만 계속 갱신하고 있습니다.

제가 짠 코드 전문과 이해를 돕기위한 사진을 올립니다. 보시고 어떤 부분이 틀렸는지 알려주시면 감사하겠습니다.


Option Explicit
Dim lastRow As Long


Private Sub clearCalendar()

    Dim lastColumn As Integer
    Dim i As Integer
    
    Application.DisplayAlerts = False
' 셀병합 경고창 비활성화 // application 프로퍼티 조작시 항상 원상복구를 염두에 두고 코딩

    
    For i = 3 To 5 Step 1
        lastColumn = Cells(i, Columns.Count).End(xlToLeft).Column
        With Range(Cells(i, "O"), Cells(i, lastColumn))
            .UnMerge
            .ClearContents
        End With
    Next i

' delete? 아예 지정한 부분을 날려버림(셀 지우기) // clear (셀 유지, 서식+내용 지우기) //
' clearcontents(셀 유지, 내용 지우기) // clearformats(셀 유지, 서식지우기)

    Application.DisplayAlerts = True


End Sub

Public Sub automateCalendar()

    Dim i As Integer
    Dim j As Integer
    
    Dim checkYear As Integer
    Dim lastDay As Integer
    
    
    checkYear = Cells(1, "B").Value
    lastDay = Day(DateSerial(checkYear, i + 1, 0))
    
' lastDay는 dateserial 마지막 일 자리에 0 넣으면 전월 말일 나오는 원리를 사용해 날짜값만 추출
        
    Dim lastDayColumn As Long
    Dim lastMonthColumn As Long
' lastDayColumn과 lastMonthColumn은 일자의 마지막에 꼬리물기 하기 위해 선언
        
        
    Dim dateCheck As String
    
        
    Application.DisplayAlerts = False
' 셀병합 경고창 비활성화 // application 프로퍼티 조작시 항상 원복을 염두에 두고 코딩

    Call clearCalendar
' 입력한 연/월/일 범위 서칭해 삭제
  
  
    For i = 1 To 12
        For j = 1 To lastDay
            lastDayColumn = Cells(4, Columns.Count).End(xlToLeft).Column
            Cells(4, lastDayColumn + 1).Value = j
' lastdaycolumn 지정해서 월 스택 쌓을 준비 + 일 입력

            If j = 1 Then
                Cells(4, lastDayColumn + 1).Offset(-1, 0).Value = i
                lastMonthColumn = Cells(3, Columns.Count).End(xlToLeft).Column
            End If
' 초일이면 i에 맞는 월 입력
            
            If j = lastDay Then
                With Range(Cells(3, lastMonthColumn), Cells(4, lastDayColumn + 1).Offset(-1, 0))
                    .Merge
                    .Font.Bold = True
                    .Font.Size = 20
                    .HorizontalAlignment = xlCenter
                End With
            End If
' 말일이면 월 셀들 합병하고 서식 조정
            
            
            dateCheck = Format(DateSerial(checkYear, i, j), "aaa")
' 이중 for 문에 사용할 i, j, 그리고 checkYear까지 합쳐 특정연월일을 만들고, 이를 토대로 특정연월일의 요일을 추출

            
            If dateCheck = "토" Or dateCheck = "일" Then
                Cells(4, lastDayColumn + 1).Font.Color = vbRed
                With Cells(4, lastDayColumn + 1).Offset(1, 0)
                    .Value = dateCheck
                    .Font.Color = vbRed
                End With
            Else
                Cells(4, lastDayColumn + 1).Offset(1, 0).Value = dateCheck
            End If
            
' datecheck를 불러와 토/일요일인 경우 요일, 일 모두 빨간색으로 텍스트 색칠하고 아니면 그냥 요일만 입력
            
            
        Next j
        
    Next i
    
    Application.DisplayAlerts = True
'셀 병합 경고창 활성화

    
End Sub

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
아델라이데
20/02/14 14:00
수정 아이콘
엑셀을 메일로 보내주시면 도움을 드릴수 있을것 같네요.. 도움이 필요하시면 댓글이나 쪽지 주세요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
175848 [질문] 여행시 네이버, 카카오 해외로그인 방지 [2] 삼성시스템에어컨820 24/04/19 820
175847 [질문] 큐브 실력(?)을 늘리려면 어떻게 해야될까요? [5] 앙스1008 24/04/19 1008
175846 [질문] 중고차 구입방법 질문합니다. [16] 보아남편872 24/04/19 872
175845 [질문] 부동산 관련 기초 상식, 용어들을 비유를 통해 설명해주실분들....계실까요? [14] 요하네즈742 24/04/19 742
175844 [질문] chatPDF 같은 서비스가 더 있을까요? [2] 리얼포스724 24/04/19 724
175843 [질문] '실리콘파워' 라는 브랜드 이름 있는 브랜드 인가요? [1] 밥도둑1689 24/04/18 1689
175842 [질문] 햄버거 빵대신 양상추로 싸주는 프랜차이즈 버거집 있나요..? [4] 하카세2217 24/04/18 2217
175841 [질문] 미국주식 양도세 관련 질문드립니다 [6] 보리야밥먹자1470 24/04/18 1470
175840 [질문] 선릉 ~ 잠실 사이에 괜찮은 초밥집 추천 부탁드립니다. En Taro1158 24/04/18 1158
175839 [삭제예정] 재산처리 관련 법적인 내용 질문 드립니다. [1] 포커페쑤1260 24/04/18 1260
175838 [질문] 아버님께 드릴 선물을 사야하는데 뭐가 좋을까요? [7] LowCat777 24/04/18 777
175837 [질문] 맥북이 작동되지 않습니다 [2] 자루스591 24/04/18 591
175836 [삭제예정] 지인의 차 사고 질문 [2] 삭제됨989 24/04/18 989
175835 [삭제예정] 축의금 관련 질문드립니다. [24] 인천테란1882 24/04/18 1882
175834 [질문] 간헐적 인터넷 끊김 조언 부탁드려요 [16] 탄야1119 24/04/18 1119
175833 [질문] 설/추석 명절 홍콩 가보신 분 계신가요? [5] LG의심장박용택1099 24/04/18 1099
175832 [질문] 비행기 조종 게임이나 시뮬레이션 관련 질문 [4] 지니팅커벨여행973 24/04/18 973
175831 [질문] 재미로 코딱지 파는 심리를 분석해 보려고 합니다(설문 요청). [13] 인생을살아주세요1460 24/04/18 1460
175829 [질문] 워드에서 영단어 마지막글자가 지워지는 증상? [2] beloved1009 24/04/18 1009
175828 [삭제예정] 미국주식 양도소득세 계산시 이동평균법으로 신고하는 방법이 있을지요...? [19] nexon2659 24/04/17 2659
175827 [질문] 엑셀 고수분들께 요청 드립니다. [6] 귀여운호랑이2483 24/04/17 2483
175826 [질문] 부모님 해외여행 질문드립니다 [6] 리코타홀릭2307 24/04/17 2307
175825 [질문] 엑셀 텍스트나누기 함수 질문 [5] possible1930 24/04/17 1930
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로