0

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

Dim CellX As Range

Set CellX = ActiveCell

' run the macro

Application.Goto CellX

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

4

2 回答 2

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

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

于 2013-07-15T13:40:06.333 回答
0

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

Set CellX = ActiveSheet!ActiveCell

但是..您的宏代码中有什么?

于 2013-07-12T07:47:01.853 回答