나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 조약돌 (snowOff)

추천:  2
파일:     조회:  2396
제목:   잠금 셀에 붙여넣기 때 오류
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007): 2010

* 아래줄에 질문을 작성하세요 >>
이 파일 올릴려고 하니 오류가 나서 직접 VBA만 올립니다.
123248번에 오류 메시지를 올려 놓았습니다.

VBA로 잠금셀에 붙여넣기 하려고 하니까 오류가 나는데 어떻게 해야 하는지요?
Sub 통합_Click()
    Dim oWorkbook As Workbook, curCell As String
    
    Set oWorkbook = Application.ActiveWorkbook
    
    With Application
        .ScreenUpdating = False
        curCell = ActiveCell.Address(, , , True)
        Dim ws As Worksheet
        Dim idxa As Integer
        Dim goods() As String
        Dim size() As String
        Dim gCnt As Integer
        Dim rRow As Integer
        Dim cCol As Integer
        Dim tCnt As Integer
        
        Set ws = Sheets("통합")
        Sheets("통합").Range("G4").Value = Format(Now(), "yyyy년 MM월 DD일  ")
        tCnt = 6

        idxa = 0
        Sheets("통합").Select
        Sheets("통합").Range("K5").Select
        Sheets("통합").Activate
        
        Do
           idxa = idxa + 1
        Loop While Sheets("통합").Range("K" & idxa + 4).Value <> ""
        gCnt = idxa - 1
        ReDim goods(gCnt)
        ReDim size(gCnt)
        
        For idxa = 1 To gCnt
            goods(idxa) = Sheets("통합").Range("K" & idxa + 4).Value
            size(idxa) = Sheets("통합").Range("L" & idxa + 4).Value
       Next
        ws.Unprotect
            For idxa = 1 To gCnt
            With ws
                .Activate
                Sheets(goods(idxa)).Select
                Range("B6").Select
                If Range("B7").Value <> "" Then
                    Selection.End(xlDown).Select
                End If
              
                rRow = Selection.Row
                cCol = Selection.Column
                Range("G" & rRow & ":J" & rRow).Select
                Selection.Copy
                Sheets("통합").Select
                Range("B" & tCnt).Value = goods(idxa)
                Range("C" & tCnt).Value = size(idxa)
              Range("D" & tCnt).Select
          ActiveSheet.Unprotect "1225"
' 이 부분은 Dim 바로 밑에 두어도 보고 한 칸 위에도 두어 보았습니다.
                Selection.PasteSpecial Paste:=xlPasteValues
                tCnt = tCnt + 1
                
                
            End With
        Next
        .Goto Range(curCell)
        .ScreenUpdating = True
    End With
    ActiveSheet.Protect "1225"

End Sub

그리고 Sheet에는 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    On Error Resume Next
    
    Sheets(Target.Value).Activate
    
End Sub

Private Sub Worksheet_Activate()

   'ActiveSheet.Unprotect Password:="1225"
   
   
    Cells.Locked = False '전체셀 잠금 해제
    Range("G6:J1000").Locked = True '보호하려는 특정범위 잠금
   
    ActiveSheet.Protect Password:="1225", userinterfaceonly:=False

 
End Sub

이런식으로 했습니다.

또 이 문서를 열 때나, 저장 시에 오랜 시간이 걸립니다. 왜 그런 것인지요?
   해결 방법은 무엇인지요? 알려 주시면 감사하겠습니다.
 
[불량 게시물 신고]  
조삿갓올려주신 내용만으로는 오류 재현이 안되네요. 주변 셀들에 어떤 값들이 들어 있는지 알 수 없어서, 아예 반복 루프 안으로 들어가지도 않습니다.

문제된 파일을 다른 이름으로 저장하여
관련된 시트만 남기고 다른 시트를 모두 삭제한 후에 올려 보시기 바랍니다.
09-16 (21:22)
삭제 ■신고
조약돌Sheets 수를 줄이니까 올려지네요
123274에 올려습니다.
09-16 (22:54)
삭제 ■신고
        
  

작성일 : 2017-09-16(10:19)
최종수정일 : 2017-09-16(10:22)