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 : 16
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
수정 아이콘
엑셀을 메일로 보내주시면 도움을 드릴수 있을것 같네요.. 도움이 필요하시면 댓글이나 쪽지 주세요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
135573 [질문] 16gb 램 지금 사는 게 좋을까요, 아니면 더 떨어질까요? [2] 라플비2766 19/07/17 2766
135572 [질문] 노트북 마우스 없이 사용하시는 분 계신가요? + 관련 질문 [6] 쉴더5115 19/07/17 5115
135571 [질문] 전세집 관련 문의 드립니다. [1] Enigma2110 19/07/17 2110
135570 [질문] 아기 낮잠시간을 어린이집 스케쥴에 꼭 맞춰야 하나요... [26] 비싼치킨8379 19/07/17 8379
135569 [삭제예정] 비금속 소형 잠수함이 해군 레이더에 걸리나요? [9] 준벙이2943 19/07/17 2943
135568 [질문] 실손보험 가입 추천 [3] 아라온2687 19/07/17 2687
135567 [질문] 인천 인근 펜션 추천부탁드립니다. [2] 삭제됨1939 19/07/17 1939
135566 [질문] 서울 시내 버스에 음료수 반입 말인데요 [6] 그대의품에Dive3562 19/07/17 3562
135565 [질문] 고혈압인데 채용검진 어떻게 해야 할까요? [11] 기다17756 19/07/17 17756
135564 [질문] 파판14 늅늅인데 렙업 루트가 궁금합니다 [8] 궁디대빵큰오리4971 19/07/17 4971
135563 [질문] 편의점(GS25)에서 나오는 노래 플레이리스트 알 방법? [9] 가유aa13769 19/07/17 13769
135562 [질문] 음악좀 찾아주실 분 계신가요? [3] 리나시타1942 19/07/17 1942
135561 [질문] 서울 아파트 전세 3억 초반 추천부탁드립니다~ [12] 잠이오냐지금3829 19/07/17 3829
135560 [질문] 도배 본드냄새 때문에 고민입니다. [5] 갈매기6565 19/07/17 6565
135559 [질문] vba 질문드립니다 [1] 산양2358 19/07/17 2358
135558 [질문] 보조배터리 30w이상 출력나오는게 있을까요? [5] 짐승먹이3818 19/07/17 3818
135557 [질문] 유니클로 대체재로 어디가 제일 괜찮나요? [16] 괄하이드6508 19/07/17 6508
135556 [질문] [랑그릿사] 서버점검을 틈탄 질문드립니다. [15] kkaksai2957 19/07/17 2957
135555 [질문] 8개월 정도 3~4천만원을 어떻게 굴릴까요? [19] 예나3982 19/07/17 3982
135554 [질문] 어쩌다 '리볼빙'이란거에 가입했는데요 [13] 크리스티아누4784 19/07/17 4784
135553 [질문] 머리숱없은 없지만 호일펌을 하고싶어요 [5] Part.33710 19/07/17 3710
135552 [질문] 영양제 섭취가 체중 변화에 영향을 줄까요? [4] [PS4]왕컵닭2521 19/07/17 2521
135551 [질문] [랑모] 육성 관련 질문... [4] 최종병기캐리어2399 19/07/17 2399
목록 이전 다음
댓글

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