将已关闭的工作簿中的工作表复制到活动工作簿中的工作表,并作出解释[重复]

问题描述 投票:1回答:1

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

我试图将共享驱动器上一个封闭文件中的第一张也是唯一的一张表复制到活动工作簿的第一张表中,我想从该工作簿中运行宏。

如果有人能分享任何帮助,解释步骤的代码,这将是巨大的。

谢谢你的帮助

excel vba import copy-paste
1个回答
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

我怎么强调宏记录器的有用性都不为过... ...

© www.soinside.com 2019 - 2024. All rights reserved.