Sub work()
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Target = Target * 1000
Application.EnableEvents = True
End Sub
我找到了一种通过不使用excel来解决这个问题的方法。我用R来解决这个问题。只需一个提示,如果您有很多数据,请不要使用Excel。这是致命的缓慢和复杂。任何人都可以更简单的方式使用R或Python。
答案 0 :(得分:0)
你必须使用1结束sub。 sub work()和private sub ....
Sub work()
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False Target = Target * 1000 Application.EnableEvents = True
End Sub
答案 1 :(得分:0)
我不相信VBA允许嵌套的子程序或函数(虽然我认为VB"正确的"可以做到这一点。)
你的问题是你正在开始第二个子程序,而第一个子程序仍处于活动状态"这就是为什么它会抱怨。
最简单的解决方案,假设需要两个子程序,可能只是将子程序分开而不是试图嵌套它们。
但是,由于您的代码段中不清楚为什么您需要work()
,因此可能就是您只需删除该行并且只需{ {1}}子程序,类似于:
Worksheet_Change()
如果你做需要一个单独的功能,基本上做同样的事情,写它(单独),以便它调用那个,或将代码的内容放入单独的< / em>子例程由Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Target = Target * 1000
Application.EnableEvents = True
End Sub
和 work()
调用。