保存文件后VB停止工作

时间:2015-03-09 14:14:29

标签: excel-vba vba excel

excel新手

当我将以下VB添加到工作表时,它可以工作:

Private Sub Worksheet_Change(ByVal Target As Range)
    Set KeyCells = Range("A1:C10")
    Set isect = Application.Intersect(KeyCells, Range(Target.Address))
    If Not isect Is Nothing Then
        Application.EnableEvents = False
        isect.Value = isect.Value - 40
        Application.EnableEvents = True
    End If
End Sub

一旦我将其保存为xlsm,它就不再有效了。

如果我关闭并重新打开它仍然无效。

保存/重新打开后需要它才能工作。

2 个答案:

答案 0 :(得分:1)

听起来您有一个安全设置阻止在打开.xlsm文件时运行VBA代码。在Excel 2010中,这些设置位于“开发人员”选项卡上,左侧带有黄色三角形图标和“#34;宏安全性”#34;。最常见的选项是"禁用所有宏而不通知,"这似乎发生在你身上。下一个向下,禁用通知,允许您在文件打开时重写该选项并说明有效,"不,我想在此次运行此文件中的宏。"

如果您无法找到该页面,但可以访问“信任中心”,"寻找"宏设置"在那之内,那个页面显示了我上面描述的内容。

检查宏运行的非常快速的方法是放置一个类似

的语句
Msgbox "Hi"

在你的日常工作中。如果你在允许宏运行后看到它,那么你知道例程运行了;如果没有其他事情发生,则代码中存在问题,但宏执行不存在。

答案 1 :(得分:0)

我也遇到了同样的问题,几个小时后我找到了解决方案:您应该将文件保存在受信任的位置。

您可以在文件>选项>信任中心>信任中心设置>信任位置中找到信任位置列表。

您可以将文件保存在列出的位置之一,也可以添加新位置。