2013-07-01 123 views

回答

22

您无法选择非活动工作簿中的工作表。

您必须先激活工作簿,然后才能选择工作表。

workbooks("A").activate 
workbooks("A").worksheets("B").select 

当你使用它激活自动激活工作簿。

注意可以在一个工作簿选择> 1片:

activeworkbook.sheets(array("sheet1","sheet3")).select

但只有一个片可以活动的,并且如果激活的片材,其是不是多片材选择的一部分,那么那些其他表将被取消选择。

+0

非常感谢!我记得我从某处读过.select不推荐使用,你碰巧知道为什么? – user2495069

+1

这个建议通常来自于使用宏记录器生成而没有任何编辑。通常情况下,记录器会生成一些代码,比如Range(“A1”),然后选择'Selection.Copy',而只用'Range(“A1”)。如果你的代码使用了“Select”(特别是在范围上),那么如果“错误”工作表处于活动状态,它可能会中断,从而使你的宏变得不那么健壮。避免选择和直接在对象上工作本身更快,更脆弱。 –

+1

我明白了!非常感谢!我能再问一个问题吗?在什么情况下,activesheet会被改变,比如说当前的activesheet是B,然后我改变sheetA中单元的格式或值,activesheet会变成sheetA? – user2495069

相关问题