0
이 작은 매크로를 작성하여 배열에 저장된 여러 시트를 복사하고 새 통합 문서에 시트의 이름과 순서를 유지하는 값으로 붙여 넣으려고합니다. 나는 몇 가지 해결책을 찾았지만 내 상황과 정확히 일치하지는 않는다. 결과VBA 붙여 넣기 시트 배열에서 값으로 새 통합 문서
Sub tryit()
Dim wo As Workbook, wn As Workbook
Dim so As Worksheet, sn As Worksheet
Dim MyArray As Variant
MyArray = Array("ar1", "ar2", "ar3")
Set wo = ActiveWorkbook
Set wn = Workbooks.Add
For Each so In wo.Worksheets(MyArray)
Set sn = wn.Worksheets.Add
sn.Name = so.Name
so.Cells.Copy
sn.[A1].PasteSpecial xlPasteValues
sn.[A1].PasteSpecial xlPasteFormats
Next so
wn.SaveAs Filename:=ThisWorkbook.Path & "\" & "Report"
wn.Close savechanges:=True
End Sub
문제 : 나는 매 1 2 3 배열에서 새 워크 시트를 추가 해요
- 어떻게 삭제하는 그들을 대신 교체?
- 추가 된 워크 시트의 순서가 반대로 바뀝니다 (ark3, ark2, ark1).
나는 Lbound 및 Ubound 기능을 사용하여 몇 가지 솔루션을 보았지만 루프와 결합하는 방법을 잘 모르겠습니다. 코드 클리너를 만들 것이라고 생각하십니까?
미리 감사드립니다.
감사합니다. 그게 거의 모든 문제를 해결합니다. workbook.add 메서드에 xlWBATWorksheet를 추가하여 기본 워크 시트를 삭제하지 않아도됩니다. 마지막으로 한 가지 - 새 통합 문서의 모든 워크 시트에서 모든 셀을 선택하고 싶지만 각 루프마다 Cells.Selected를 추가하면 "ar1"에서만 작동합니다. 루프마다 다른 것이 필요합니까? – Timbo
왜 모든 셀을 선택하겠습니까? 그것은 사용자를위한 것입니까? 그렇지 않으면 VBA를위한 것이므로 거의 확실한 방법이 있습니다. 그렇게해야만한다면'so'를'Activate '하고'so.Cells.Select'를해야합니다. –