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,它就不再有效了。
如果我关闭并重新打开它仍然无效。
保存/重新打开后需要它才能工作。
答案 0 :(得分:1)
听起来您有一个安全设置阻止在打开.xlsm文件时运行VBA代码。在Excel 2010中,这些设置位于“开发人员”选项卡上,左侧带有黄色三角形图标和“#34;宏安全性”#34;。最常见的选项是"禁用所有宏而不通知,"这似乎发生在你身上。下一个向下,禁用通知,允许您在文件打开时重写该选项并说明有效,"不,我想在此次运行此文件中的宏。"
如果您无法找到该页面,但可以访问“信任中心”,"寻找"宏设置"在那之内,那个页面显示了我上面描述的内容。
检查宏运行的非常快速的方法是放置一个类似
的语句Msgbox "Hi"
在你的日常工作中。如果你在允许宏运行后看到它,那么你知道例程运行了;如果没有其他事情发生,则代码中存在问题,但宏执行不存在。
答案 1 :(得分:0)
我也遇到了同样的问题,几个小时后我找到了解决方案:您应该将文件保存在受信任的位置。
您可以在文件>选项>信任中心>信任中心设置>信任位置中找到信任位置列表。
您可以将文件保存在列出的位置之一,也可以添加新位置。