2012-12-06 103 views
1

這是我第一次嘗試編寫VBA代碼。我正在模仿stackoverflow上發現的東西。Excel宏將某個列從一個工作簿複製到另一個工作簿

我想將某一列(A,B和E)從一個工作簿複製到另一個工作簿,還要更改某些行的字體和顏色並編輯特定單元格中的文本(用「Group」 )。

這是我沒有改變複製代碼:

Sub CopyColumnToWorkbook() 
Dim sourceColumn As Range, targetColumn As Range 

Set sourceColumn = Workbooks("Source").Worksheets("Sheet1").Columns("A") 
Set targetColumn = Workbooks("Target").Worksheets("Sheet1").Columns("A") 

sourceColumn.Copy Destination:=targetColumn 
End Sub 

我得到一個運行時錯誤9和線下的高亮顯示:

Set sourceColumn = Workbooks("Source").Worksheets("Sheet1").Columns("A") 

我附上下面作爲源文件和目標文件我希望他們看起來像是成功運行的結尾。

Source File

Target File

+1

要麼您沒有工作簿名稱源或工作簿沒有名爲sheet1的工作表。該代碼起作用,因此它是對工作簿或工作簿中的一個對象的引用。我查看了源文檔,並且沒有名爲sheet1的工作表。我將在解答中發佈修復程序 – Sorceri

回答

6

可引用一個片,其是不存在。將其更改爲使用其索引引用工作簿中的第一個工作表。您也沒有在文件中包含擴展名,所以它也會在工作簿對象上失敗。

Sub CopyColumnToWorkbook() 
Dim sourceColumn As Range, targetColumn As Range 

Set sourceColumn = Workbooks("Source.xlsm").Worksheets(1).Columns("A") 
Set targetColumn = Workbooks("Target.xlsm").Worksheets(1).Columns("A") 

sourceColumn.Copy Destination:=targetColumn 
End Sub 
+0

謝謝!這完全有效。現在我要試着弄清楚如何在顯示標題的條件下複製行,更改字體和顏色以及文本。當我到達某個地方或遇到困難時,我會提供我的代碼,以便我可以收到評論。謝謝!! – Amatya

+0

@Amatya很高興我可以幫助:)如果這解決了問題,你可以標記爲答案。 – Sorceri

+0

謝謝是的,當然。另外,如果可以,可以告訴我如何複製給定行的第一個單元格(如果它包含一些文本),直到源excel耗盡行。謝謝。 – Amatya

相關問題