|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 엑셀 버전(95,97,2000,xp,2003,2007): 엑셀 2007
* 아래줄에 질문을 작성하세요 >>
안녕하세요.
혼자서 씨름하다가 안되서 문의글 올립니다.
c:에 있는 엑셀파일에 폼을 만들어 놓고.
해당 입력값을 다른 폴더에 있는 엑셀파일에 저장하고 싶습니다.
동일 파일내의 다른 시트로 저장시키는건 worksheets()를 사용해서 해결은
했는데..이걸 다른 파일로 할려고 하니..너무 막막하네요..
엑셀 vba 에서 어떤 명령어를 써야 하나요.?
==============[날개님 글에 대한 답변입니다]==============
예시 코드입니다.
해당 사용자정의 폼에
TextBox1 이라는 텍스트박스와
CommandButton1 이라는 버튼이 배치되어 있다고 가정합니다.
그 외에 파일명이나 경로명 등은 예시이므로, 적당히 알아서 수정하면 됩니다.
해당 사용자정의 폼의 코드 창에 다음 코드 내용을 삽입하되
각각의 이벤트 핸들러가 이미 존재하고 있다면 그 안에 적절한 위치에
각 코드를 삽입해 넣으면 됩니다.
참고 자료:
http://www.officetutor.co.kr/board/Dtype/bfrmvw.asp?f_tn=Dqa_excel_n2&f_bno=124103
http://www.officetutor.co.kr//board/DType/bfrmvw.asp?f_tn=Dqa_excel_n2&f_bno=124064
------------------------------
Dim dname As String ' 대상 파일(통합문서)의 파일명 및
Dim dpath As String ' 경로명을 전역변수로 선언
Private Sub CommandButton1_Click()
Workbooks(dname).Worksheets("A").Cells(17, 3) = TextBox1
' 대상 통합문서-워크시트-셀(행,열)을 차례로 지정함
End Sub
Private Sub UserForm_Initialize()
Dim wb As Variant
Dim exist As Boolean
dname = "매출처.xlsx"
dpath = "D:\Users\CHOGA\Documents\"
' 드라이브명칭까지 포함하는 full name으로 지정하는 것이 안전함
For Each wb In Application.Workbooks
' 현재 대상 파일이 열려 있는지 검사
exist = wb.Name = dname
If exist Then Exit For
Next wb
If Not exist Then Workbooks.Open dpath & dname
End Sub
Private Sub UserForm_Terminate()
Workbooks(dname).Close SaveChanges:=True
' 사용자정의 폼을 닫으면 대상 파일도 저장하고 닫음
End Sub
|
|