1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

엑셀 매크로 작성입니다.

조회 수 6208 추천 수 0 2009.12.07 18:29:18

파일2의 특정값을 파일1의 특정셀로 이동복사해주는 프로그램을 만들려고 하는데요;

 

엑셀파일2의 특정시트1에 있는 값(B4,B5,C25)과 특정시트2에 있는 값(C31,F31)을

엑셀파일1의 특성시트[sheet1]의 A8 ~ E8까지 공란에 채워주면 되는데요;;

간단하게 여기까지는 했는데 다음파일도 불러서 그다음행에 채워야하는데 이건 아닐것 같네요;;

 

암튼 이게 끝나면 다음파일을 열어 마찬가지로 다음행(A9 ~ E9)까지 채우고 이런식으로

반복동작하게끔 프로그램을 만들고 싶습니다.

 

 ChDir "C:\Documents and Settings\a\바탕 화면\LRB해석"
    Workbooks.Open Filename:="C:\Documents and Settings\a\바탕 화면\LRB해석\LRB성적서 9L0518.xls"
    Workbooks.Open Filename:="C:\Documents and Settings\a\바탕 화면\LRB해석\정리표.xls"
    Windows("정리표.xls").Activate
    ActiveCell.Select
    ActiveCell.FormulaR1C1 = "='[LRB성적서 9L0518.xls]수직성적서'!R5C2:R5C3"
    ActiveCell.Select
    ActiveCell.FormulaR1C1 = "='[LRB성적서 9L0518.xls]수직성적서'!R5C2"
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveCell.FormulaR1C1 = "='[LRB성적서 9L0518.xls]수직성적서'!R4C2:R4C3"
    ActiveCell.Select
    ActiveCell.FormulaR1C1 = "='[LRB성적서 9L0518.xls]수직성적서'!R4C2"
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveCell.FormulaR1C1 = "='[LRB성적서 9L0518.xls]수직성적서'!R25C3"
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveCell.FormulaR1C1 = "='[LRB성적서 9L0518.xls]전단성적서'!R31C3"
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveCell.FormulaR1C1 = "='[LRB성적서 9L0518.xls]전단성적서'!R31C6"
    ActiveCell.Offset(1, 0).Range("A1").Select
End Sub


댓글 '1'

profile

[레벨:30]아별

2009.12.08 10:20:48
*.166.197.43

안녕하세요?

일단 사과의 말씀 드립니다.

요즘 제가 아별툴 알파버전 배포 준비와 책 집필때문에
질문&답변에 많은 시간을 투자할 수 없음을 양해해주시기 바랍니다.

 

--------------------------------------------------------------------------------------------------------------------'

 

질문하신 의도가 여러파일을 대상으로 하는 것 같고,

현재로서는 파일 이름의 연관성등을 알 수 없기에 아래의 강좌를 참조하시도록 조언드립니다.

 

여러파일을 하나로 통합하는 아래 강좌를 참고하시고
http://www.iexceller.com/MyXls/Lectures/VisualBasic/VB0177.zip
(참고..강좌 목록 : http://www.iexceller.com/Contents(VBPart4).asp)

아래 부분의 코드에서 rngTarget을 "엑셀파일1의 특성시트[sheet1]의 A8 ~ E8"이 되도록 수정하시고,
"wrkBook.Worksheets(1).UsedRange.Copy rngTarget" 부분을 "특정시트1에 있는 값(B4,B5,C25)과 특정시트2에 있는 값(C31,F31)"가 되도록 수정해서 사용하시면 될 것 같습니다.

값을 갖고 오는게 아니라 참조하게 하고 싶다면,

copy rngTarget이 아니라 연결하여 붙여넣기(ActiveSheet.Paste Link:=True) 등으로 처리하시면 될 것 같네요.

 

 

    For Each varTemp In varFileName
        Set wrkBook = Workbooks.Open(varTemp)
        Set rngTarget = wrkNewBook.Sheets(1).Cells(65536, 1).End(xlUp).Offset(1, 0)
       
        wrkBook.Worksheets(1).UsedRange.Copy rngTarget
        Application.CutCopyMode = False
        wrkBook.Close savechanges:=False
        i = i + 1
    Next varTemp

 

감사합니다.

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 공지 [공지] 아별닷컴의 엑셀 질문방 폐쇄합니다. 카페 질문방 이용하세요.. imagefile [레벨:30]아별 2015-04-23 42660
722 다중조건 일치시 데이터 추출하기 imagefile [2] 2009-07-13 6375
721 다른시트의 도형색깔 바꾸기 file [3] [레벨:6]ryanoh 2010-05-03 6370
720 원하는 데이터만 가져오려면? file [1] [레벨:1]여현 2010-05-04 6355
719 칸나누기?? [1] 2009-12-29 6354
718 자동으로 잡히는 인쇄영역 [1] [레벨:1]울산전기쟁이 2010-03-03 6352
717 피벗테이블 팁부탁드립니다. file [1] [레벨:1]kkabo 2009-07-23 6317
716 유효성검사로 목록2개 만들기 file [3] [레벨:1]안나수이☆。 2009-10-23 6275
715 엑셀일반 [엑셀 연결관련] 파일을 열때 "연결중:₩₩ ???₩ ???₩ ~ " 류의 메세지 imagefile [1] [레벨:1]kymylys 2014-05-10 6256
714 단축키에 대해서 여쭈어 봐용 ^0^ [3] 고득녕 2010-04-12 6222
» 엑셀 매크로 작성입니다. file [1] [레벨:1]유니현 2009-12-07 6208
712 엑셀에서 sheet 보호를 한상태로는 셀병합이라던지 그런건 할수 없는건가요? [1] [레벨:2]코요태 2010-02-05 6199
711 초보자지만 함수 질문 올려봅니다. file [2] [레벨:1]CH38941522 2010-04-17 6198
710 셀서식(표시형식) 사용자 정의 셀서식에 대해서 [1] [레벨:2]양다원 2009-07-22 6195
709 각 시트의 2개이상 조건값이 같을 때 해당값을 찾는 함수??? imagefile [1] [레벨:2]qpfmdpfm 2010-04-15 6168
708 VLookup 두 개의 조건이 일치하는 값 찾기. imagefile [3] [레벨:4]쟈니 2013-03-07 6149
707 VBA 특정개체 수정 관련 [5] [레벨:4]고수가되고파 2015-04-02 6130
706 자동으로 계산할 수 있는 방법이 있나요? file [2] [레벨:3]유령 2010-05-03 6112
705 VBA 프로그램바 질문 _ 작업 진행바 Progress bar file [2] [레벨:4]신강현 2013-01-30 6103
704 엑셀일반 엑셀값 중간에 : 삽입 _ 문자열 수식, 텍스트 가공하여 합치기 [3] [레벨:1]chan 2013-12-13 6097
703 차트안의 데이타 자동 변경방법 알려주세요^^ [3] [레벨:6]ryanoh 2010-03-30 6090