我发现Workbook.Activate
并不总是将该工作簿带到窗口的前面。我想知道将工作簿设置为窗口顶部的正确方法是什么,所以当宏完成时,这就是您正在查看的工作簿。
我应该使用任何基于Windows()
的代码,还是与.setfocus
相关?我只是在猜测。
答案 0 :(得分:1)
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