我对activeworkbook / activesheet属性有一些疑问,非常感谢您的帮助:
在任何情况下,最多只能有一个活动工作簿或者没有,这适用于活动工作表。是吗?
如果使用范围,单元格,...等属性在使用时未完全限定,则默认情况下它们是activeworkbook.activesheet的属性。是吗?
活动工作簿是否会通过除激活其他工作簿之外的vba操作更改为另一个工作簿?
当我使用wb.ws.range(cells(x1,y1),cells(x2,y2))时,隐含的单元格是wb.ws的单元格吗?或者他们需要合格吗?
是否可以在不激活工作簿的情况下运行存储在工作簿模块中的vba代码?
谢谢。
答案 0 :(得分:1)
在任何情况下,最多只能有一个活动工作簿或者没有,这适用于活动表。是吗?
是。 .ActiveWorkbook
返回一个Workbook
对象,该对象代表活动窗口(顶部窗口)中的工作簿。
如果使用范围,单元格,...等属性在使用时未完全限定,则默认情况下它们是activeworkbook.activesheet的属性。是吗?
是
Debug.Print rng.Parent.Name '<~~ This will give you the name
除了激活其他工作簿之外,活动工作簿是否会通过vba操作更改为另一个工作簿?
是的,这是可能的。例如,如果您将活动工作簿发送到Back
或将其最小化,那么如果zOrder中的下一个窗口是工作簿,那么该工作簿将被激活
当我使用wb.ws.range(cells(x1,y1),cells(x2,y2))时,隐含的单元格是wb.ws的单元格吗?或者他们需要合格吗?
只有当ws处于活动状态时,否则他们会引用Activesheet
,因此完全限定对象总是好的
With ws
Set Rng = .Range(.Cells(x1, y1), .Cells(x2, y2))
End With
是否可以在不激活工作簿的情况下运行存储在工作簿模块中的vba代码?
是。您可以使用Application.Run