将 ws 调暗为工作表集 ws=ActiveSheet 给了我“类型不匹配”

nsg*_*nsg 2 excel vba

我想要一个对当前工作表做一些事情的无模型表单。当我在定义表单的同一工作簿中的工作表上使用它时,一切正常。(ActiveSheet 代表当前工作表)。

当我在有不同的活动工作簿时尝试使用表单时会出现问题,当我单击表单时,它会立即激活定义它的工作簿,并且 ActiveSheet 不再适合我。它的行为很奇怪:

dim ws as worksheet
set ws=ActiveSheet
Run Code Online (Sandbox Code Playgroud)

给我“类型不匹配”

debug.print ActiveSheet.Name ' prints the name of the original worksheet
debug.print ActiveSheet.Parent.Name ' prints the name of the workbook where form is defined
Run Code Online (Sandbox Code Playgroud)

这是 Excel 2013。我想我能够在以前的版本中做到这一点。是不是失去了这个能力?

Gar*_*ent 5

如果图表或其他非工作表处于活动状态,则会发生这种情况