2012-12-06 154 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

相关问题