【问题标题】:Copy data range from macro free workbook to another macro free workbook将数据范围从无宏工作簿复制到另一个无宏工作簿
【发布时间】:2021-02-16 07:27:48
【问题描述】:

我是 VBA 新手!

我有一个工作簿 A,用作衍生工作簿 B、C、D 等的模板。

我在公式范围 A36:E37 中出错。我需要在所有随后创建的工作簿中更正它,这些工作簿可以有任何随机名称

我想打开更正后的主工作簿 A,并将范围从 A 复制到任何工作簿名称

每次我使用此工作簿引用时,它都会将数据粘贴到我的个人宏工作簿中,与活动工作簿相同。

我确信有一个简单的解决方案,(比如将一个变量分配给需要修复的新打开的工作簿?)但我不知道该怎么做。

非常感谢您的帮助!

另外值得注意的是,我计划手动打开 whaverworkbookname,然后 VBA 取消保护工作表,复制粘贴功能,保护工作表,保存,并在宏完成时关闭whateverworkbookname book,与其余部分重复不正确的工作簿。

如果有更聪明的方法来做到这一点(这可能超出我的想象),例如将宏应用于文件夹中的所有工作簿,我会对正确方向的一点感兴趣来了解它。

【问题讨论】:

标签: excel vba


【解决方案1】:

首先说明:

  • ThisWorkbook 始终指代编写代码的工作簿。这永远不会改变。
  • ActiveWorkbook 是具有焦点的工作簿(位于顶部)。只需在任何工作簿上单击鼠标即可轻松更改。

问题可能是您从 VBA 编辑器运行代码。但是,如果它在您的个人工作簿中并且您从编辑器中运行,那么一旦您在代码中,您的活动工作簿就是个人工作簿,因为那是您的代码所在的位置,如果您单击那里运行它具有焦点的代码.

您可以检查活动工作簿是否是个人工作簿

If ActiveWorkbook.Name = ThisWorkbook.Name Then
    MsgBox "The active workbook is the personal one. Make sure to focus on the correct workbook."
    Exit Sub
End If

'rest of your code

创建一个按钮或链接一个功能区按钮以启动您的宏并在您的代码中使用ActiveWorkbook

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多