2016-04-30 71 views
0

我一直在嘗試做這件事一段時間,但我無法。我通常會搜索更多的等,但我不是很熟悉VBA(只有C++和Java)。從外部工作表複製數據到另一個

我有一個Excel文件(工作簿)與多個工作表都包含數據(來源)。我有另一個Excel文件,其中又包含多個工作表,只包含標題(目標)。

我想要做的是轉到目標工作簿並獲取標題的代碼,然後轉到源工作簿並遍歷所有工作表,直到找到此標題,然後將數據複製到目標工作簿。

請記住源文件中的所有標題都在所有工作表中的同一行。

enter image description here

+0

您將無法獲得您需要的確切代碼。但是有很多很好的例子會有所幫助。你應該做的就是把你的問題分解成更小的問題,比如如何在工作表上循環,如何獲得工作表名稱等等,然後嘗試工作並構建你需要的東西。如果你遇到任何錯誤,SO總是有:-) – newguy

+0

我目前正在閱讀,但它很難開始如此深入沒有一個適當的基礎,但感謝您的建議。 –

+0

這實際上是一件很常見的事情。您應該能夠輕鬆找到此代碼。 –

回答

1

此代碼應解決你的問題。

Sub Read_External_Workbook() 

    '''''Define Object for Target Workbook 
    Dim Target_Workbook As Workbook 
    Dim Source_Workbook As Workbook 
    Dim Target_Path As String 

    '''''Assign the Workbook File Name along with its Path 
    '''''Change path of the Target File name 
    Target_Path = "D:\Sample.xlsx" 
    Set Target_Workbook = Workbooks.Open(Target_Path) 
    Set Source_Workbook = ThisWorkbook 

    '''''With Target_Workbook object now, it is possible to pull any data from it 
    '''''Read Data from Target File - Assuming that your headers's locations are absolute. 
    Target_Data = Target_Workbook.Sheets(1).Cells(1, 1) 
    Source_Workbook.Sheets(1).Cells(1, 1) = Target_Data 

    '''''Update Target File - 
    Source_data = Source_Workbook.Sheets(1).Cells(3, 1) 
    Target_Workbook.Sheets(1).Cells(2, 1) = Source_data 

    '''''Close Target Workbook 
    Source_Workbook.Save 
    Target_Workbook.Save 
    Target_Workbook.Close False 

    '''''Process Completed 
    MsgBox "Task Completed" 

End Sub 
+0

我的數據不一定是在相同的順序嗎?我希望代碼循環通過source_workbook ..例如,我可能需要的第一列可能在第一個工作表中,而第二列可能在第三個工作表中? –

相關問題