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

 김영준 (kim.young)

추천:  2
파일:     조회:  2087
제목:   복수 워크북과 워크시트 간의 표복사 vba 가르쳐 주세요
     
  - 엑셀 버전(오피스365 구독 버전): OS는 윈도우즈 10입니다.

* 아래줄에 질문을 작성하세요 >>

고수님께서 도와주시면 감사하겠습니다.

에러가 날 것 같았는데 에러가 났습니다.
워크북간과 워크시트간에 표를 복사해오는 코드입니다.

워크북 koStocks.source 내의 32개 시트에 50행의 데이터가 각각 표에 저장되어있습니다.
작업 워크북은 koStocks으로 그 안에 있는 koStocks 시트로 32개의 표 데이터를 복사해 올려고 합니다.
반복해서 복사해오는 작업인데 k값이 1에서는 복사-붙이기를 합니다.
2에서 멈춥니다.
워크북과 워크시트를 번갈아 가면서 복사와 붙이기를 반복하는 과정에서 실행이 중단됩니다. 
기초가 부족하고, 그 간 엑셀을 자주 다루지 않아서 감이 오지않습니다.
with 구문도 사용해 보고싶지만 마찬가지로 오류가 날 것 같습니다.
코드 작성에 도움말을 주시면 감사하겠습니다.

다음과 같이 작성했습니다.

Sub copy01()

Dim k As Integer
Dim ws As String
Dim obj As String
ws = "코스피"
obj = "코스피"

For k = 1 To 32

        ws = IIf(k = 1, ws, ws & " (" & k & ")")
        obj = IIf(k = 1, obj, obj & "__" & k)  

Workbooks("koStocks.source").Worksheets(ws).ListObjects(obj).DataBodyRange.Copy
Workbooks("koStocks.20210128").Worksheets("koStocks").Cells(Rows.Count, 4).End(3)(2).PasteSpecial Paste:=xlPasteValues
        
Next k

end sub
 
[불량 게시물 신고]  
voice
일단 복사부분은 제외하고  
ws, obj 생성 부분이 잘못된 듯 하네요.
       ws           obj
k=1  코스피   코스피
2  코스피 (2)   코스피__2
3  코스피 (2) (3)    코스피__2__3  
위와 같은 값들이 생성될텐데,  시트명/ 오브젝명이 실제 이름과 다를듯 하네요.
확인 해 보시죠. 
 
아래와 같이 ws,obj를 for 밑에 두고 해보시길 
For k = 1 To 32
    ws = "코스피"
    obj = "코스피"
    ws = IIf(k = 1, ws, ws & " (" & k & ")")        (앞 공백   ?        
    obj = IIf(k = 1, obj, obj & "__" & k)          _ 두개인가 ?
01-30 (13:58)
삭제 ■신고
김영준감사합니다.

그렇개 되는 군요.
확인하고 답글 달겠습니다.
01-30 (14:00)
삭제 ■신고
김영준확인했습니다.

중단상태에서 코드를 채크아웃 못하고, 너무 오랜만에 써보는 코드라 당황했습니다.

잘 실행되는군요.

보이스님 정말 감사합니다.

삶 속에 행복이 늘 충만하시기를 기원합니다
01-30 (14:14)
삭제 ■신고
        
  

작성일 : 2021-01-29(18:01)
최종수정일 : 2021-01-30(08:59)
 


 ◎ 관련글

  제 목   작성자   날짜
복수 워크북과 워크시트 간의 표복사 vba 가르쳐 주세요 김영준 2021-01-29
[RE]복수 워크북과 워크시트 간의 표복사 vba 가르쳐 주세요 김영준 2021-01-30