【问题标题】:Copy sheet from closed workbook to active workbook sheet with explanation [duplicate]将工作表从已关闭的工作簿复制到活动工作簿表并附上说明 [重复]
【发布时间】:2020-05-19 03:52:47
【问题描述】:

我知道这可能是非常基本的,但我找不到一致的有效代码。

我正在尝试将共享驱动器位置上已关闭文件中的第一个也是唯一一个工作表复制到我要从中运行宏的活动工作簿的第一个工作表中。

如果任何人都可以分享任何帮助解释步骤的代码,那就太好了。

谢谢

【问题讨论】:

  • 注意:您需要打开已关闭的工作簿才能访问它的工作表 - 快速 google 应该会产生一堆关于如何实现您想要做的结果的结果。
  • 谢谢 - 我对 VBA 还是很陌生,并尝试过谷歌搜索,但它产生了很多不同的方法,我未能成功,因此我尝试在这个论坛上发帖。很高兴边做边学,但不确定您能否指出正确的方向?
  • 这里有一些链接可以帮助您找到正确的方向 - 请务必阅读文档,如果您遇到问题,请在谷歌 that 问题(并询问 具体问题在这里如果它仍然不清楚)。这些将遵循您的代码应遵循的基本流程:Workbooks.Open method、Worksheet.UsedRange property 和 Range Object
  • 对每一个都进行一些试验和错误,然后构建您的应用程序。
  • 是的,非常感谢!

标签: excel vba import copy-paste


【解决方案1】:

对 VBA Excel 程序员最有用的功能之一是Excel macro recorder。我经常使用记录器来了解 Excel 如何编写代码来实现我通过鼠标单击和菜单选择执行的操作。

切入正题。假设我的源工作簿名为 katy_movies.xlsx,其中包含已查看/最喜欢的电影标题和各种单元格格式的列表。假设我打开了该电子表格,并希望将其(保留源格式)复制并粘贴到另一个工作簿中的空白工作表中。这是宏记录器根据我的鼠标点击和菜单选择“编写”的几乎全部代码(我做了 2 次调整)。

注意:我原来的解决方案无法打开闭源工作簿。这是执行此操作的代码,并且作为奖励,在复制/粘贴操作后关闭源代码:

Sub Macro3()
'
' Macro3 Macro  (recorded by excel macro recorder)
'
    Workbooks.Open Filename:="\path\to\katy_movies.xlsx"
End Sub

Sub Macro2()
'
' Macro2 Macro
'
    Macro3
    Windows("katy_movies.xlsx").Activate
    Cells.Select
    Selection.Copy
    Windows("Book1").Activate
    Range("A1").Select      ' I manually added this line to ensure a valid paste locn
                            ' for an entire worksheet
    Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False
    Range("A1").Select      ' Manually added this line to unselect all cells following
                            ' paste operation.

    Range("A1").Copy        ' Effectively empty clipboard to stop Excel from whining
                            ' about the next Close operation.
    Windows("katy_movies.xlsx").Close  ' close the briefly opened spreadsheet

    ' force focus back to original worksheet
    Windows("Book1").Activate
End Sub

宏记录器的用处再怎么强调也不为过......

【讨论】:

  • 不错的答案(对 imo 很有帮助),但它缺少问题的关键部分 - 我正在尝试复制 已关闭文件中的第一个也是唯一一个工作表...。您的回答没有解决这个问题,因此并没有真正回答这个问题!
  • 更新代码以打开已关闭的工作簿。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
  • 2023-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多