【发布时间】:2018-09-14 23:49:24
【问题描述】:
我正在 Excel 中运行一个简单的复制/粘贴脚本,但是当代码执行完毕并且我重新打开屏幕更新时,电子表格会移动到另一个工作表。
在下面的代码中,一旦脚本运行(通过按下控制页面上的按钮),并且在消息框之后,电子表格将移动到输出选项卡。然后,我尝试在控制页面上进行一些任意复制/粘贴作为最终操作,但仍然遇到同样的问题。有没有办法强制脚本将我移回控制页面?
Sub Outputs()
Application.ScreenUpdating = False
Dim ws0 As Worksheet
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws0 = ActiveWorkbook.Sheets("Control")
Set ws1 = ActiveWorkbook.Sheets("Input")
Set ws2 = ActiveWorkbook.Sheets("Output")
ws1.Range("Data_Copy").Copy
ws2.Range("Data_Paste").PasteSpecial Paste:=xlPasteValues
MsgBox "Finished"
Application.ScreenUpdating = True
End Sub
谢谢
【问题讨论】:
-
PasteSpetial 可能会更改工作表选择。您需要使用 ws0.activate 手动重新选择上一张工作表
-
“电子表格移动到不同的工作表”是什么意思。意思是……
-
就这么简单! ws0.activate 工作。 @JNevill - 我的意思是作为用户,您在“控制”选项卡上,然后单击宏按钮。它运行 Outputs() 宏,然后在完成后,用户将继续查看输出选项卡(不再位于控制选项卡上)。
-
@user3722815 这是有道理的,我现在明白问题是什么以及为什么建议答案。感谢 VincentG 在字里行间的阅读。