我希望有一个无模型表单,可以对当前工作表执行某些操作。 当我在定义表单的同一工作簿中的工作表上使用它时,一切正常。 (ActiveSheet表示当前工作表)。
当我在有不同的活动工作簿时尝试使用表单时会出现问题,当我单击某个表单时,它会立即激活定义它的工作簿,并且ActiveSheet不再适用于我。它很奇怪:
dim ws as worksheet
set ws=ActiveSheet
给了我"类型不匹配"
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
这是Excel 2013。 我想我能够在以前的版本中做到这一点。这种能力丢失了吗?
答案 0 :(得分:4)
如果图表或其他非工作表有效
,则会发生这种情况答案 1 :(得分:3)
Dim ws as worksheet
Set ws= ThisWorkbook.ActiveSheet