2014-06-13 2 views
-3

다른 통합 문서의 워크 시트를 가져와야하는 코드는 다음과 같습니다. 하지만 필요한 것은 하나의 워크 시트 만 가져 오는 것입니다 (전부는 아님). 워크 시트의 이름을 가져온 원래 통합 문서에서 호출 한 것과 다른 이름으로 매크로를 변경해야합니다. 누구나 저 두 tweeks 도와 줄래? 여기하나의 워크 시트 만 가져 오기

는 내가 가진 무엇 :

Option Explicit 

Private Sub Bring_Workbooks_Click() 

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

directory = "access path to where the original workbook is stored" 
fileName = Dir(directory & "Name of workboork where sheet will be copied from.xls") 

Do While fileName <> "" 
Workbooks.Open (directory & fileName) 

For Each sheet In Workbooks(fileName).Worksheets 
    total = Workbooks("Name of my workbook.xlsm").Worksheets.Count 
    Workbooks(fileName).Worksheets(sheet.Name).Copy _ 
    after:=Workbooks("Name of my workbook.xlsm").Worksheets(1) 
Next sheet 

Workbooks(fileName).Close 
fileName = Dir() 
Loop 

Application.ScreenUpdating = True 
Application.DisplayAlerts = True 

End Sub 
+0

어떻게 당신이 원본 통합 문서에서 복사 할 시트 식별합니까? –

답변

1

이 코드를보십시오 :

하위 Bring_Workbooks_Click()

Dim path, fileName, WkshtOrig, fullName, MyWkbk As String 
Dim total As Integer 

path = "C:\VBA\" 'access path to where the original workbook is stored 
fileName = "OrigWkbk.xlsx" 'Name of workbook where sheet will be copied from.xls 
fullName = path & fileName 
WkshtOrig = "My Orig Wksht" 'name of worksheet to be copied & placed in this workbook. 
MyWkbk = "StkOvrFlwuser3738555.xlsm" 'What I named my sample workbook 

Workbooks.Open fileName:= fullName 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

Workbooks(fileName).Worksheets(WkshtOrig).Copy _ 
    after:=Workbooks(MyWkbk).Worksheets(1) 
Workbooks(MyWkbk).Worksheets(WkshtOrig).Select 
ActiveSheet.Name = "MyNewName" 

Workbooks(fileName).Close 

Application.ScreenUpdating = True 
Application.DisplayAlerts = True 

End Sub 
관련 문제