Excel 2013工作表激活

use*_*088 5 excel vba excel-vba excel-2013

我有一个从用户表单激活工作表的问题,相同的代码在Excel 2003到Excel 2010中工作正常,不适用于Excel 2013.

这是如何简单地重现问题:

有一个包含2个工作表的工作簿,在其中调用,Sheet1并且可以Sheet2说是Sheet12个按钮:

  1. 单击Button1激活Sheet2工作表时,使用Macro11行:

    ThisWorkbook.Sheets("Sheet2").Select
    
    Run Code Online (Sandbox Code Playgroud)

    我可以很好地编辑数据.

  2. 上点击Button2一个UserForm1弹出,就点击CommandButton1呼叫同宏1所示:

    Unload Me
    Macro1
    
    Run Code Online (Sandbox Code Playgroud)

    Sheet2工作表被激活,排序的,但如果我是编辑的数据,它实际上更新在Sheet1相应的单元格,如果我点击Sheet1我可以看到在那里输入的数据!

单击返回Sheet2工作Sheet2表可以正确激活工作表.

有没有人见过这样的行为?如果是,是否有任何编码解决方法可以正确激活Sheet2

Joe*_*ano 0

Sub Macro1()
Sheets("Sheet2").Select
End Sub

Sub Macro2()
Unload Me
Call Macro1
End Sub
Run Code Online (Sandbox Code Playgroud)

这有效。我可以在一定程度上重现您的错误,但这可能是您的宏的位置?(模块与工作表)。

编辑:我一开始没有看到你的评论,我有Excel2010(这就是为什么我无法真正重现它)。-对不起