Excel宏将某些列从一个工作簿复制到另一个工作簿

Excel宏将某些列从一个工作簿复制到另一个工作簿,excel,vba,Excel,Vba,这是我第一次尝试编写VBA代码。我在模仿我在网上发现的东西 我想将某些列(A、B和E)从一个工作簿复制到另一个工作簿,并更改某些行的字体和颜色,编辑某些单元格中的文本(将长短语替换为“组”) 这是我复制的代码,没有更改: Sub CopyColumnToWorkbook() Dim sourceColumn As Range, targetColumn As Range Set sourceColumn = Workbooks("Source").Worksheets("Sheet1").Co

这是我第一次尝试编写VBA代码。我在模仿我在网上发现的东西

我想将某些列(A、B和E)从一个工作簿复制到另一个工作簿,并更改某些行的字体和颜色,编辑某些单元格中的文本(将长短语替换为“组”)

这是我复制的代码,没有更改:

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")
我在下面附上源文件和目标文件,因为我希望它们在成功运行结束时看起来像这样


您引用了不存在的工作表。使用其索引将其更改为引用工作簿中的第一张工作表。您还没有将扩展名包含到文件中,因此它在工作簿对象上也会失败

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

您没有工作簿名称源,或者工作簿没有名为sheet1的工作表。该代码可以工作,因此它是对其中一个对象(工作表或工作簿)的引用。我查看了源文档,但您没有名为sheet1的工作表。我将在回复中发布修复。谢谢!这完全有效。现在,我将尝试找出如何根据标题的出现复制行,更改字体、颜色和文本。当我到达某个地方或被卡在某个地方时,我将展示我的代码,以便获得评论。谢谢@A:很高兴我能帮上忙:)如果这个问题解决了,你能把它标记为已回答吗。另外,如果可以,您能告诉我,如果给定行包含一些文本,如何复制该行的第一个单元格,直到源excel的行数用完为止。谢谢。@Amatya我非常乐意,但你能把它放在另一个问题中,这样我们就不会把这两个主题混在一起了。@Sorceri很抱歉,这是一篇旧文章。我有一个问题。如果我需要将像B、D、E这样的几个列(不按顺序)复制到目标文件G、H、I,我该如何实现呢