이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.
파일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
안녕하세요?
일단 사과의 말씀 드립니다.
요즘 제가 아별툴 알파버전 배포 준비와 책 집필때문에
질문&답변에 많은 시간을 투자할 수 없음을 양해해주시기 바랍니다.
--------------------------------------------------------------------------------------------------------------------'
질문하신 의도가 여러파일을 대상으로 하는 것 같고,
현재로서는 파일 이름의 연관성등을 알 수 없기에 아래의 강좌를 참조하시도록 조언드립니다.
여러파일을 하나로 통합하는 아래 강좌를 참고하시고
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
감사합니다.