2012-10-10 4 views
0

나는 2 장, 한 장에 두 개의 버튼 BrowsefileOpenfile과 하나의 텍스트 박스 TextBox1이있다. Browsefile 단추를 사용하여 열려는 파일을 선택하고 Openfile 단추를 사용하여 통합 문서를 엽니 다.기존 워크 시트를 현재 통합 문서로 복사하는 방법은 무엇입니까?

문제는 내 통합 문서에 추가하는 대신 새 통합 문서에서 열리는 것입니다. 어떻게 해결할 수 있을까요?

Public fileStr As String 
Sub GetOpenFile() 

fileStr = Application.GetOpenFilename() 
Worksheets("Sheet1").TextBox1.Value = fileStr 

End Sub 
Sub Paste_Click() 
Dim wbk1 As Workbook, wbk2 As Workbook 

Set wbk1 = ActiveWorkbook 
Set wbk2 = Workbooks.Add(fileStr) 

wbk2.Sheets(1).Cells.Copy wbk1.Worksheets("Sheet2").Cells(1, 1) 

End Sub 
+0

그래서 새로운 통합 문서 대신 Sheet2에서 열리시겠습니까? – CustomX

+0

네, 정말로하고 싶은 것입니다. – Cwala

+0

다른 XLS (X (M)) 형식의 파일을 다른 통합 문서의 탭으로 직접 열 수 없으므로 코드화 된 방법이 유일한 방법입니다. 파일은'XLS (X (M)) '에 있습니다. 파일이'CSV' 또는'TXT' 형식이면'DataConnections'를 사용하여 데이터를'wkb1 '의 워크 시트에 "질의"할 수 있습니다. –

답변

1

시도해보십시오 :) 파일을 선택하고 열린 통합 문서의 끝에 첫 번째 시트를 복사 할 수 있습니다.

Sub Paste_Click() 
Dim wbk1 As Workbook, wbk2 As Workbook 

fileStr = Application.GetOpenFilename() 

Set wbk1 = ActiveWorkbook 
Set wbk2 = Workbooks.Add(fileStr) 

wbk2.Sheets("Sheet1").Copy After:=Workbooks("WorkbookNameYouCopyCodeInto").Sheets(3) 
wbk2.Close 
End Sub 
+0

fileStr = ... 다음에 'Worksheets ("Sheet1"). TextBox1.Value = fileStr'을 추가 할 수 있습니다. 그러면 1 개의 매크로 만 있습니다. – CustomX

+0

이 코드를 내 코드에 추가하면 선택한 통합 문서의 모든 시트를 복사 할 수 있습니다. http://stackoverflow.com/questions/6863940/how-to-copy-sheets-to-another-workbook-using-vba – CustomX

+0

이 오류는 "아래 첨자가 범위를 벗어났습니다."이 줄을 노란색 "wbk2"로 강조 표시합니다. Sheets ("Sheet1"). Copy After : = Workbooks ("Book1.xlsm"). Sheets (3) "그리고 여전히 다른 woorkbook에 붙여 넣기 하시겠습니까? – Cwala

관련 문제