CommandButton单击与从VBA编辑器执行,

已更新================================================= ==========

所以我整晚都在debugging..还是不知道是怎么回事

如果你看看这两个捕获的图像…

在这里输入图像说明

基本上,进入下一行不应该改变select的选项卡,如下所示。 这是如果我从VBA编辑器中单击F5执行该子项会发生什么情况

但是,当我真正运行它使用链接的命令button,假设是做完全相同的事情(照片显示在线程)。 但是会发生什么呢?

在这里输入图像说明

进入下一行实际上改变了标签!

有第一个断点行,告诉Excelselect另一个选项卡…为什么这样做。

如果我使用F8运行它,实际上这个问题会消失。

已更新================================================= ============

我在Excel VBA中遇到了一些奇怪的行为,无法解释为什么它会这样做。

Sub run_simulation() ActiveWorkbook.Worksheets("Run Simulation").Select ActiveSheet.CommandButton1.value = True End Sub 

这个子程序select一张纸,然后模拟一个button“CommandButton1”的点击。

当我从VBA编辑器中的播放图标执行它,它运行良好,但是当我从另一个工作表上的链接button运行这个“run_simulation”子例程…这样

在这里输入图像说明

一个错误返回说,所选工作表“run_simulation”是受保护的,并且在继续之前需要不受保护…事情是在单击commandButton1时自动取消保护工作表。

Worksheet.Protect方法有一个很less使用的UserInterfaceOnly参数。

来自MSDN:

UserInterfaceOnly (可选) – True保护用户界面,但不保护macros。 如果省略此参数,则保护适用于macros和用户界面。

设置工作表保护时将其设置为True ,您将能够以编程方式操作工作表对象。