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 : 19
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
수정 아이콘
엑셀을 메일로 보내주시면 도움을 드릴수 있을것 같네요.. 도움이 필요하시면 댓글이나 쪽지 주세요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
135601 [질문] LED 마스크 추천 부탁드립니다. [10] 예나3240 19/07/18 3240
135600 [질문] 랑그릿사 모바일 하루에 몇시간 정도하시나요? [18] 곰두마리3336 19/07/18 3336
135599 [질문] 환경부담금이 법적으로 문제가 없나요? [9] 따루라라랑8743 19/07/18 8743
135598 [질문] "회원정보보기"를 비공개로 할수있었나요? [7] 스타카토2414 19/07/18 2414
135597 [질문] 무한하다는 개념은 뭐뭐가 있을까요 [9] Bulbasaur2881 19/07/18 2881
135596 [질문] 맥북프로 사양 질문입니다. [4] En Taro2952 19/07/18 2952
135595 [삭제예정] 키 178이면 적정몸무게 몇이라고 보시나요? [49] 삭제됨42207 19/07/18 42207
135594 [질문] 미드 유료로 반복해서 보고 싶습니다. [11] KNIC4056 19/07/18 4056
135593 [질문] 계산을 왜 도와준다고 표현할까요? [18] 허니띠4791 19/07/18 4791
135592 [질문] 와이파이 SD카드 추천 마둘리2524 19/07/18 2524
135591 [질문] 커널형 이어폰 쓸때 내 발소리 들리는거 질문입니다 [6] Lainworks4856 19/07/17 4856
135589 [삭제예정] 감사합니다 [16] 착한아이3684 19/07/17 3684
135588 [질문] [저작권] 방종된 한국 티비를 다운받아서 유투브에 편집하기 [8] poocang2604 19/07/17 2604
135586 [질문] 컴퓨터 견적 이정도면 괜찮은 편인가요? [7] 귤마법사4030 19/07/17 4030
135585 [질문] 삼국지 책 추천해 주실 수 있나요? [14] 삭제됨6458 19/07/17 6458
135584 [질문] 동영상 편집시 음성싱크 맞추는 노하우 [7] F.Nietzsche3150 19/07/17 3150
135583 [질문] 플래시백 있는 메인보드 추천좀 부탁합니다 3600용 [3] 능숙한문제해결사2876 19/07/17 2876
135582 [질문] [랑모] 티스라오성 서버 여단 만들면 들어오실 분 계신가요? [6] 지수1985 19/07/17 1985
135581 [질문] 아침에 일찍 여는 미용실이 있을까요? [8] 진솔사랑12452 19/07/17 12452
135580 [질문] 일제 아니면 '디지털피아노' 어떤 제품이 좋을까요? [18] 츄지Heart3761 19/07/17 3761
135579 [질문] 운동 질문입니다(턱걸이) [4] 호로3892 19/07/17 3892
135578 [질문] 트위터계정을 해킹 당했는데 참 화가 납니다. [6] 겸손한도마뱀5425 19/07/17 5425
135577 [질문] 오피스텔 전세 확정일자 질문 입니다. [7] Violin3489 19/07/17 3489
목록 이전 다음
댓글

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