在停用的工作簿中引用select

Private Sub Workbook_Deactivate() ThisWorkbook.ActiveSheet.Selection.Copy End Sub 

我想复制停用的工作簿中的select。 但是这不行,事实上,我有一个运行时错误。

该死的! 这可能的!

 Private Sub Workbook_Deactivate() ThisWorkbook.Windows(1).Selection.Copy End Sub 

说明:

ActiveSheet和Selection都是Application对象的子对象,而不是Workshet或Workbook对象。 (请参阅MSDN: select和ActiveSheet 。)select表示活动窗口中当前选定的项目。 ActiveSheet也一样。

现在事实certificate,你可以为它们指定一个窗口对象。 通常每个工作簿都有一个窗口,但是可以为每个打开的工作簿创build多个窗口。 无论如何,您可以单击并select的每个打开的工作簿都至less有一个窗口。 这是whateverworkbook.Windows(1)

此工作簿始终引用运行macros的工作簿(这意味着实际包含VBA代码的工作簿)。 就你而言,那就是你要离开的人。 (除非要让macros从任何工作簿中运行,否则您必须想出一个自定义事件处理函数来捕获每个工作簿的停用事件…)

就是这样,真的。 您可以在其他工作簿中引用select,您只需通过它的Window攻击它。

谢谢你这个好问题,今天我学到了很有价值的东西。 🙂