1
我發現Workbook.Activate
並不一定帶來的是工作簿窗口的前面。我想知道將工作簿設置爲窗口頂部的正確方法是什麼,因此當宏完成時,這是您正在查看的工作簿。如何使用Excel VBA將ActiveWorkbook放到窗口的前面?
我應該使用任何基於Windows()
代碼,或者這是關係到.setfocus
?我只是猜測。
我發現Workbook.Activate
並不一定帶來的是工作簿窗口的前面。我想知道將工作簿設置爲窗口頂部的正確方法是什麼,因此當宏完成時,這是您正在查看的工作簿。如何使用Excel VBA將ActiveWorkbook放到窗口的前面?
我應該使用任何基於Windows()
代碼,或者這是關係到.setfocus
?我只是猜測。
Workbook
自身可能沒有足夠的資格,取決於你在屏幕上看到實際運行時。如果VBA同一工作簿中運行,嘗試
ThisWorkbook.Activate
。
如果你的代碼是在工作簿WB2但處理其他工作簿WB1,你可能想打電話給你的VBA與工作簿作爲參數,並激活它在你的代碼的末尾。
所以例如VBA代碼是WB2 ...
Sub CallStuff()
Debug.Print "Hey, I am " & ThisWorkbook.Name
Debug.Print "starting to work on " & Application.Workbooks("Book1").Name
DoStuff Application.Workbooks("Book1")
End Sub
Sub DoStuff(WB As Workbook)
WB.Worksheets("Sheet1").[A1] = "Co-cooo!"
'do other stuff on WB
WB.Activate
End Sub
我的情況是我在一個名爲工作簿workbook1試圖打開另一個工作簿的代碼,比如,workbook2,但在此之後,它仍然workbook1頂部。 – Nicholas
通過我的初始回覆的第2部分回答...用完整示例更新 – MikeD