运行宏后返回所有窗口中的相同单元格

时间:2013-07-12 07:42:37

标签: excel vba

我有一个Excel文件,我通常打开多个窗口。通常在一个窗口中我有sheet1活动,在第二个窗口我有sheet2活动等。我写了一个宏,在几个步骤中,选择不同的工作表。运行我的宏之后,我希望在运行宏之前选择相同的工作表(和单元格)。通常我会使用以下代码执行此操作:

Dim CellX As Range

Set CellX = ActiveCell

' run the macro

Application.Goto CellX

但是,如果我使用多个窗口,这不起作用,运行宏后只有一个窗口转到右侧位置。有谁知道如何做到这一点? 非常感谢!

2 个答案:

答案 0 :(得分:0)

我认为不应该发生这种情况,但你可以试试这个......

Set CellX = ActiveSheet!ActiveCell

但..你的宏代码中有什么?

答案 1 :(得分:0)

我发现Application.Goto是在所有窗口中选择CellX的原始工作表和单元格的原因。我找到了以下解决方案:

Dim CellX As Range
Dim SheetX As String
Dim RangeX As Range
Set CellX = ActiveCell
Set RangeX = Range(CellX, CellX)
SheetX = ActiveSheet.Name
'run macro
Worksheets(SheetX).Activate
RangeX.Activate

我意识到这可以“改善”,但至少我现在有一个有效的解决方案。