在另一个宏运行之前,工作表中的VBA代码不会在其他计算机上运行

时间:2019-01-08 17:19:21

标签: excel vba

我有一个工作表,该工作表应根据更改的单元格来做一些事情。该代码非常适合我,但是当我将文档发送给其他人时,工作表中的代码根本无法激活。我通过在代码的顶部插入中断进行测试,但它并没有在新计算机上调用该代码。

如果我按下下面的按钮(创建新工作表)然后返回,则它开始工作。如果用户使它正常工作(使用上面的button方法),保存该文档,然后再返回,它仍然可以工作。问题在于将代码隐藏在工作表后面以立即开始运行。

我尝试过的事情: 1.我添加了“设置/说明”选项卡,该选项卡需要一个复选框,然后按一下按钮即可取消隐藏设置选项卡。没有解决这个问题。 2.我隐藏了“设置”选项卡上的所有内容,除了单个“开始”按钮之外,该按钮可取消隐藏表单上的所有对象和文本。没有用。

“设置”标签中的一些代码:

Private Sub Worksheet_Change(ByVal Target As Range)

ActiveSheet.Unprotect

If Not Intersect(Target, Range("D2")) Is Nothing Then

Call UpdateName

End If

同样,该代码对我来说非常完美,并且如果遇到此问题的用户使用了较大的宏之一,那么它可以解决此问题。

1 个答案:

答案 0 :(得分:0)

Worksheet_Change不会运行任何代码,而Worksheet_Activate会运行任何代码,并且看来已经成功了。我添加了一个简单的Range("D2").Select,它开始起作用。不知道是什么原因造成的,只是测试该文档的五个用户之一,但是它现在正在运行。