2013-06-05 102 views
0

我有以下問題。我有一個已經有一些工作表的Excel文件,我們稱之爲我的主文件,並且在一個子目錄中,我有五個其他Excel文件,每個文件都包含一張工作表。現在我需要將excel文件的內容複製到我的主文件中,並且在我的主文件中,需要爲子目錄中的每個文件創建一個表。從Excel文件複製工作表

我是新來的VBA所以這不是那麼容易,我,但我得到以下幾點:

Sub Makro1() 

Dim objWorkbook As Workbook 
Dim mybook As Workbook 
Set basebook = ThisWorkbook 

Dim strPath As String 
strPath = ThisWorkbook.Path + "\data" 

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = False 
objExcel.DisplayAlerts = False 

Set objFso = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFso.GetFolder(strPath) 

Dim ws As Worksheet 

For Each objFile In objFolder.Files 

If objFso.GetExtensionName(objFile.Path) = "xls" Then 

Set objWorkbook = objExcel.Workbooks.Open(objFile.Path) 
objWorkbook.Worksheets(1).Copy 
Set ws = basebook.Sheets.Add 
ws.Paste 

objWorkbook.Close 
Set objWorkbook = Nothing 
Set ws = Nothing 


End If 

Next 

objExcel.Quit 

End Sub 

所以在我的主文件創建表,但它不列入粘貼文件的內容在這些表中的子目錄中,但我用Ctrl + C複製了這些東西。

我會感謝您的解決方案或提示。

在此先感謝
大衛

回答

0

您必須將數據從源表複製到你的目的地表。下面是VBA項目一些示例代碼:

Dim wbDest As Workbook 
Dim wbSource As Workbook 
Dim shDest As Worksheet 
Dim shSource As Worksheet 

Set wbDest = Workbooks("Missing_Paper_Spreadsheet.xlsm") 
Set wbSource = Workbooks("Missing_Paper_Assist.xls") 

Set shDest = wbDest.Sheets("Weekly") 
Set shSource = wbSource.Sheets("Main") 

Dim rngNumUnits As Range 

Set rngNumUnits = shSource.Range("A9:A50") 

你看到最後一行,「shSource.Range()」,它說?您可以通過使用.Range()來訪問工作表上的單元格。要做你正在做的事情,你可以從一個工作表指定一個單元格範圍到一個變量,然後將這些範圍值複製到不同工作表上的單元格。

+0

非常感謝。我最終使用了'objWorkbook.Worksheets(1).UsedRange.Copy',因爲我事先不知道工作表有多大,但現在工作得很好。再次感謝你 –

相關問題