Vba 在辅助Excel窗口中粘贴特殊更改主窗口中的工作表

Vba 在辅助Excel窗口中粘贴特殊更改主窗口中的工作表,vba,excel,copy-paste,paste,Vba,Excel,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

我经常复制和粘贴公式,因此我编写了一个简短的宏来提供键盘快捷键:

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:

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

    澄清 我只在一个工作簿“Book1.xlsb”中工作,该工作簿在两个窗口中打开。该工作簿有两张纸;第一个窗口中有张1打开,第二个窗口中有张2打开

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

    相反,如果在第一个窗口(Book1:1)中运行PasteSpecial,则第二个窗口不会切换图纸

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

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

    此场景是指两个单独的工作簿还是两张单独的工作表?粘贴后,是否要显示公式的原点或粘贴目标?为什么不使用现有的键盘快捷键执行此操作?只有一个工作簿,有两个不同的工作表,每个工作表位于不同的窗口中。我想在一个窗口中粘贴,并使第一个窗口不受整个过程的影响。@BigBen,有粘贴公式的键盘吗?我只知道Ctrl+Alt+V,然后是F,然后是Enter,但这比Ctrl+Shift+F长得多。我在谷歌上找不到任何更简单的快捷方式。我当时正在考虑——或者使用Alt+H+V+F(至少在Excel 2016中)。。。诚然,只比Ctrl+Shift+F稍长一点。如果有什么不同的话,我也很好奇如何用VBA解决。非常奇怪的行为。