http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=3EyGLOqSHaN6aKDnS5LSfwWHz6QD0j7F
아래 코드를 참조하여 작업해 보세요. 제 나름대로 문제없이 데이타를 가져옴을 확인했습니다. (질문의 마지막 부분, '참조 파일들을 열지않고' 데이타를 가져오는 건 불가능할 것인 바, 사람이 일일이 화일을 열어주지 않더라도 VBA가 자동으로 열고 데이타 가져온 후 닫으면 될 것으로 이해했습니다.)
----------------------------------------------------------(이하를 복사, VBE에 붙이세요)
Sub 참조c10()
'
' 화일 순차 변수명 부여 열고 c10 가져오기
'
Dim mydata, mypath, Fname, strTemp, Sname As String
Dim i As Integer
i = 2
mypath = "D:\업무\생산관리업무\작업관리\" 'QW....화일들이 들어있는 기본경로명
Sname = "Sheet1" 'QW....화일 C10이 있는 시트명
'start
Do While Cells(i, 1) <> "" 'A2 부터 시작, A열이 빈칸이면 종료
If Cells(i, 3) = "" Then 'C열이 차 있으면 다음으로
strTemp = Cells(i, 4) & ".xls" 'D열 화일명 + .xls
Fname = mypath & Mid(Cells(i, 4), 9, 2) & "\" & strTemp '경로명+화일명
Workbooks.Open Fname, ReadOnly = True '화일을 읽기전용으로 열기
mydata = Cells(10, 3) 'C10의 데이타 가져오기
Workbooks(strTemp).Close False '화일 닫되 저장할 것인지 묻지도 않게 하기
Cells(i, 3) = mydata 'C열에 데이타 쓰기
End If
i = i + 1
Loop '행번호를 증가시켜 계속
End Sub
----------------------------------------------------------------(끝)
VB Editor 사용방법은 아시리라 보고 생략합니다. 다만 만약을 대비, 작업을 하실 땐 원본 QW...화일들을 다른 디렉토리에 복사, 백업을 받아 두신 후 하실 것을 추천합니다. 단, 위 코드 중
strTemp = Cells(i, 4) & ".xls" 'D열 화일명 + .xls
에서 확장명이 .xls인지는 윈도우탐색기에서 화일명에 포인터, 오른쪽 클릭-속성...으로 확인하실 수 있습니다. (2008.02.13)
'Skills > Excel VBA' 카테고리의 다른 글
VBA 문자열 변동 또는 합계에 따라 행 삽입/일련 번호 (0) | 2008.11.13 |
---|---|
다른 값이 나올때마다 행과 일련번호를 삽입 (0) | 2008.11.13 |
카운터 로직 (0) | 2008.11.13 |
합산 조합 구하기 (0) | 2008.11.13 |
조합(combination) 출력 (0) | 2008.11.13 |