2017-06-16 27 views
2

我對activeworkbook/activesheet性能的一些問題,非常感謝您的幫助:activeworkbook/activesheet何時更改?

  1. 在任何情況下,將有最大隻有一個activeworkbook或沒有,並且適用於activesheet。是對的嗎?

  2. 如果諸如範圍,單元格等屬性在使用時未完全限定,則默認情況下它們是activeworkbook.activesheet的屬性。是對的嗎?

  3. 除了激活其他工作簿之外,活動工作簿是否會通過vba操作更改爲另一個工作簿?

  4. 當我使用wb.ws.range(單元格(x1,y1),單元格(x2,y2))時,單元格暗示爲wb.ws的單元格?還是他們需要合格?

  5. 是否可以在不激活工作簿的情況下運行存儲在工作簿模塊中的vba代碼?

謝謝。

+1

感謝您提出這個問題。 – teylyn

回答

1

在任何情況下,最多隻有一個活動工作簿或否,並且適用於活動工作表。是對的嗎?

是的。 .ActiveWorkbook返回一個Workbook對象,該對象表示活動窗口(頂部的窗口)中的工作簿。

如果諸如範圍,單元格等屬性在使用時未完全限定,則默認情況下它們是activeworkbook.activesheet的屬性。是對的嗎?

Debug.Print rng.Parent.Name '<~~ This will give you the name 

將比激活其他工作簿其他activeworkbook改變到另一個工作簿通過VBA行動?

是的,這是可能的。例如,如果你把你的活動工作簿到Back或將其最小化,然後如果zOrder下一個窗口是一個工作簿,然後將得到激活

當我使用wb.ws.range(細胞(X1,Y1),細胞(x2,y2)),這些細胞暗示爲wb.ws的細胞?還是他們需要合格?

只有WS是活動的,那麼是,否則他們將把Activesheet,因此它是一件好事,完全符合你的對象

With ws 
    Set Rng = .Range(.Cells(x1, y1), .Cells(x2, y2)) 
End With 

是否可以運行存儲在該VBA代碼沒有激活工作簿的工作簿模塊?

是的。您可以使用Application.Run

+1

感謝您的回答。 – teylyn

+0

關於answer3,那麼這是否意味着activeworkbook只會通過停用當前版本的方法進行更改?另一個工作簿調用的方法除了激活之外不會激活它嗎? – user3559071

+0

您是否會詳細介紹如何使用vba發送工作簿?謝謝。 – user3559071