【问题标题】:VBA moves worksheet when finishedVBA 完成后移动工作表
【发布时间】: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 在字里行间的阅读。

标签: excel vba


【解决方案1】:

您可以尝试使用以下命令重新激活“控制”工作表:

ws0.Activate

【讨论】:

    猜你喜欢
    • 2013-04-21
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 2023-03-25
    相关资源
    最近更新 更多