辅助Excel窗口中的PasteSpecial更改主窗口中的工作表

时间:2018-06-01 16:55:15

标签: excel vba excel-vba copy-paste paste

我经常复制和粘贴公式,所以我写了一个短宏来给我一个键盘快捷键:

Sub PasteFormula()
    ' Keyboard Shortcut: Ctrl+Shift+F
    Dim TargetRange As Range

    If Application.CutCopyMode Then
        Set TargetRange = Application.ActiveWindow.Selection
        TargetRange.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
    End If
End Sub

它完全符合要求,具有一种不希望的特性。以下是创建MWE的方法:

  1. 打开一个新工作簿Book1.xlsb。将上面的VBA复制到模块中,然后链接键盘快捷键Ctrl + Shift + F.
  2. 使用视图 - >窗口 - >用于创建第二个窗口的新窗口,以便窗口的标题为“Book1:1”和“Book1:2”。
  3. 在“Book1:2”窗口中创建第二张“Sheet2”并打开该表。在一个单元格中键入内容,复制它,转到同一窗口中的另一个单元格,然后按Ctrl + Shift + F.
  4. 宏将起作用 - 将第一个单元格中的公式作为公式复制到第二个单元格中。但是,第一个窗口“Book1:1”将更改为显示Sheet2 。如何在不更改主窗口中的工作表的情况下使用VBA在辅助窗口中运行PasteSpecial?

    澄清

    我只在一个工作簿中工作,“Book1.xlsb”,在两个窗口中打开。那个工作簿有两张;我在第一个窗口中打开了Sheet1,在第二个窗口中打开了Sheet2。

    当我在第二个窗口(Book1:2)中运行Sheet2中的PasteSpecial时,第一个窗口(Book1:1)也会切换到Sheet2。

    相比之下,如果我在第一个窗口(Book1:1)中运行PasteSpecial,则第二个窗口会切换工作表。

    我认为这种行为很奇怪。所以我的问题是

    • 为什么Excel会这样做,和/或
    • 如何让Excel不这样做?

0 个答案:

没有答案