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

 slgi (slgi97)

추천:  2
파일:     새 폴더 (2).7z (31.2KB) 조회:  2112
제목:   [RE]vba관련해서?도저히?모르겠어서?도움요청?드려요
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007): 오피스365

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

안녕하세요.

얼마전까지 엑셀만 주구장창 파다가 최근들어 vba란것을 알아가지고 조금씩 이것저것 해보고 하는 뉴비입니다.

다른게 아니라 회사업무에 적용을 시켜볼까 하고 보는데 저 혼자서는 답이 안나와가지고 도움요청 드립니다.

제가 사용하는 파일은 2개입니다.
[기준파일],[사용파일]이라고 칭하겠습니다.

기준파일에서 데이터입력을 이것저것 다 넣고. 마무리할때 협력사양식인 사용파일에 넣어서 보내는 형식입니다.

근데 이게 사용파일에 시트가 한개만 있으면 상관없는데, 여러개 시트중에 월,화,수,목,금,토,일의 각 요일에 맞는 시트에 데이터를 넣어서 보내야합니다.

그래서 원래는 기준파일에서 작성 후 사용파일에 붙혀넣기만 하면 됐었는데요.
이번에 vba를 공부하면서 이걸 요일별로 자동화 시킬순 없는걸까? 하고 생각을 해봤는데 도저히 모르겠습니다.

제가 생각해본 방법은 두가지 정도가 있습니다.

첫번째는.
기준파일에 특정셀에다가 요일에 맞게 값을 넣어놓고 사용파일에서 해당 셀값과 시트이름이 같은경우 해당시트만 데이터를 붙혀넣는방법

두번째는,
파일이름에 날짜가 적혀있습니다. 협력사가 특이한걸 요구해서 사용파일하나에 월~일 시트가 있음에도 불구하고 매일 해당일에 맞춰서 이름을 변경하여 보내달라는 요청입니다. 그래서 파일이름에서 날짜를 추출하여 해당요일과 시트명이 동일한 곳에만 데이터를 넣는 것입니다.

가능하긴 할지..모르겠네요.

아래는 일단 제가쓰고있는 코드입니다.

Sub 파일간_데이터이동()


Dim stdFile As String '기준파일(가져올 데이터가 있는 파일)
Dim atvFile As String '사용파일(데이터를 붙혀넣을 파일)
Dim cfile   '복사할 파일
Dim pfile   '붙혀넣어지는 파일
        
    cfile = Format(Date - 2, "mm/dd")   '보통 출차가 끝나고 나서 DOT를 하면 이미 해당파일이 당일보다 이틀이 더 밀리기 때문에 -2해주었음
    pfile = Format(Date - 1, "mm/dd")   '기본적으로 365 DOT는 파일이름이 출차일-1로 표기함
    
    
    FileCopy "D:\운송\DOT\2021\3월\(365 DC) Transport Daily Report_" & cfile & ".xlsm", "D:\운송\DOT\2021\3월\(365 DC) Transport Daily Report_" & pfile & ".xlsm"
    
    
    pfile = Format(Date - 1, "mm/dd")    
    stdFile = "D:\운송\DOT\DOT용 배차표 변환 파일.xlsm"     '기준파일 경로
    atvFile = "D:\운송\DOT\2021\3월\(365 DC) Transport Daily Report_" & pfile & ".xlsm"  '사용파일 경로


    Workbooks.Open fileName:=stdFile     '기준파일 실행
    
    Range("A3:C48").Select               
    Selection.Copy                       
    
    Workbooks.Open fileName:=atvFile     '사용파일 실행
    Range("A3").Select                 
    
    
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    
    Workbooks.Open fileName:=stdFile
    
    Range("E3:R48").Select
    Selection.Copy
    
    Workbooks.Open fileName:=atvFile
    Range("f3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Worksheets("Report").Move      
    
    Workbook.Close savechanges:=True           
    
End Sub




==============[vba뉴비님 글에 대한 답변입니다]==============
참고하세요
 
[불량 게시물 신고]  
vba뉴비시간내서 답변해주셔서 감사합니다! 참고해서 더 해보겠습니다! 고맙습니다 ㅜㅜ03-10 (22:42)
삭제 ■신고
        
  

작성일 : 2021-03-10(18:13)
최종수정일 : 2021-03-10(18:13)
 


 ◎ 관련글

  제 목   작성자   날짜
vba관련해서 도저히 모르겠어서 도움요청 드려요..(날짜,요일관련? 인것같습니다.) vba뉴비 2021-03-08
[RE]vba관련해서?도저히?모르겠어서?도움요청?드려요 slgi 2021-03-10