![excel - 한 통합 문서의 모든 시트를 다른 통합 문서로 복사하는 방법](https://rvso.com/image/1476422/excel%20-%20%ED%95%9C%20%ED%86%B5%ED%95%A9%20%EB%AC%B8%EC%84%9C%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%EC%8B%9C%ED%8A%B8%EB%A5%BC%20%EB%8B%A4%EB%A5%B8%20%ED%86%B5%ED%95%A9%20%EB%AC%B8%EC%84%9C%EB%A1%9C%20%EB%B3%B5%EC%82%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
"테스트"라는 통합 문서가 있습니다. 테스트를 위해 "견적"이라는 통합 문서의 모든 시트를 복사하고 싶습니다. "테스트"에 복사할 수 있는 "추정" 시트 목록을 만드는 방법을 모르겠습니다. VBA에서 할 수 있는 방법이 있나요?
답변1
고려하다:
Sub dural()
Dim b1 As Workbook, b2 As Workbook
Dim sh As Worksheet
Workbooks.Open Filename:="C:\TestFolder\test.xls"
Set b1 = ActiveWorkbook
Workbooks.Open Filename:="C:\TestFolder\estimate.xls"
Set b2 = ActiveWorkbook
For Each sh In b2.Sheets
sh.Copy after:=b1.Sheets(b1.Sheets.Count)
Next sh
End Sub
답변2
그러면 목록이 표시됩니다.
Sub list()
Dim wbEstimate As Workbook
Set wbEstimate = ThisWorkbook
Dim wsList As Worksheet
Dim numSheets As Integer
numSheets = wbEstimate.Sheets.Count
Worksheets.Add(After:=Worksheets(numSheets)).Name = "list"
Set wsList = Worksheets("list")
Dim i As Integer
i = 1
For Each Sheet In wbEstimate.Worksheets
wsList.Cells(i, 1) = Sheet.Name
i = i + 1
Next
End Sub
그리고 이것은 그것들을 복사해야합니다둘 다 열려 있으면
Sub list()
Dim wbEstimate As Workbook
Set wbEstimate = ThisWorkbook
Dim wbTest As Workbook
Set wbTest = Workbooks("test.xlsx")
For Each Sheet In wbEstimate.Sheets
Sheet.Copy after:=wbTest.Sheets(wbTest.Sheets.Count)
Next
End Sub
시트를 복사하기 전에 테스트를 열어야 하는 경우 다음과 같이 하십시오.
Sub list()
Dim wbEstimate As Workbook
Set wbEstimate = ThisWorkbook
Dim wbTest As Workbook
Set wbTest = Workbooks.Open("C:\Users\path\to\test.xlsx")
For Each Sheet In wbEstimate.Sheets
Sheet.Copy after:=wbTest.Sheets(wbTest.Sheets.Count)
Next
End Sub