我经常复制和粘贴公式,所以我写了一个短宏来给我一个键盘快捷键:
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:1”将更改为显示Sheet2 。如何在不更改主窗口中的工作表的情况下使用VBA在辅助窗口中运行PasteSpecial?
我只在一个工作簿中工作,“Book1.xlsb”,在两个窗口中打开。那个工作簿有两张;我在第一个窗口中打开了Sheet1,在第二个窗口中打开了Sheet2。
当我在第二个窗口(Book1:2)中运行Sheet2中的PasteSpecial时,第一个窗口(Book1:1)也会切换到Sheet2。
相比之下,如果我在第一个窗口(Book1:1)中运行PasteSpecial,则第二个窗口会不切换工作表。
我认为这种行为很奇怪。所以我的问题是