【问题标题】:Excel Macro to copy certain columns from one workbook to anotherExcel宏将某些列从一个工作簿复制到另一个工作簿
【发布时间】:2012-12-06 23:54:39
【问题描述】:

这是我第一次尝试编写 VBA 代码。我在模仿我在stackoverflow 上找到的东西。

我想将某些列(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")

我在下面附上了源文件和目标文件,因为我希望它们在成功运行结束时看起来像。

Source File

Target File

【问题讨论】:

  • 要么您没有工作簿名称 Source,要么工作簿没有名为 sheet1 的工作表。该代码有效,因此它是对工作表或工作簿中的一个对象的引用。我查看了源文档,您没有名为 sheet1 的工作表。我将在答案中发布修复

标签: excel vba


【解决方案1】:

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

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

【讨论】:

  • 谢谢!这完全有效。现在我将尝试弄清楚如何根据出现的标题复制行,更改字体、颜色和文本。当我到达某个地方或卡在某个地方时,我会展示我的代码,以便获得 cmets。谢谢!!
  • @Amatya 很高兴我能帮上忙 :) 如果这解决了问题,您可以将其标记为已回答。
  • 当然感谢。另外,如果可以的话,你能告诉我如何复制给定行的第一个单元格,如果它包含一些文本,直到源 excel 用完行。谢谢。
  • @Amatya 我会很高兴,但你能不能把它放在另一个问题中,这样我们就不会混淆这两个主题。
  • @Sorceri 抱歉,这是一篇旧帖子。我有一个查询。如果我需要将 B、D、E 等几列(不按顺序)复制到目标文件 G、H、I,我该如何实现
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-26
  • 1970-01-01
相关资源
最近更新 更多