我有三個關於VBA和控制/操作新窗口的問題。Worksheet_Activate新表格的代碼
我設置了幾張紙。
Master | Worksheet1 | Worksheet2 |注意|工作訂單|聯繫方式
1)我在Notes,工作訂單,聯繫人信息上設置了WorkSheet_Activate函數,這些函數在獨立窗口中打開所有三張表並將其垂直排列。
Private Sub WorkSheet_Activate()
ActiveWindow.NewWindow
ActiveWindow.NewWindow
Windows.Arrange ArrangeStyle:=xlVertical
Sheets("Notes").Select
Windows("Mastersheet.xlsm:2").Activate
Sheets("Work Orders").Select
Windows("Mastersheet.xlsm:1").Activate
Sheets("Contact Info").Select
End Sub
它的問題是,如果我可以重新激活這些表,它會打開更多的窗口。我希望代碼能夠檢測窗口是否已經打開並且是否打開。
2)現在,當我導航到不同的工作表(如Master)時,我想要關閉額外的窗口並使主工作表處於活動狀態。我在Master工作表上使用了以下代碼。
Private Sub WorkSheet_Activate()
Windows("Mastersheet.xlsm:2").Activate
ActiveWindow.Close
Windows("Mastersheet.xlsm:1").Activate
ActiveWindow.Close
ActiveWindow.WindowState = xlMaximized
End Sub
這段代碼的問題是,如果額外的窗口沒有打開,那麼它會出錯。我可以進行某種邏輯檢查以使其正常工作嗎?我不知道要檢查什麼值...
3)最後一個問題是有工作簿中的宏動態生成新工作表。這些新的工作表將不包含上述關閉多個窗口並關注活動頁面的代碼。是否有一個不同的對象,我應該把代碼放到適用於Master |的位置Worksheet1 | Worksheet2表和任何新表?
這很好。我會盡我所能去試着理解你寫的代碼。非常感謝您的幫助dkusleika! – 2010-01-22 20:32:00
雖然我知道它在VBA世界中非常標準,但我認爲如果沒有匈牙利符號,這個代碼將會更乾淨。 – User 2011-01-31 21:54:12