你如何去另一个对象的线标签?

时间:2011-09-23 22:44:09

标签: excel vba

E.g。给定表1包含:

Ref: Do things

如何将第1单元中的代码定向到GoTo Ref?如果我在Sheet1代码模块中,那么我可以简单地使用 Goto Ref

但这不适用于不同的模块

2 个答案:

答案 0 :(得分:8)

你的问题不明确,你没有提供任何代码,所以这是猜测。

GoTo 用于跳转到同一子/功能中的不同位置。你不能用它来跳转到其他子程序或函数的部分,这听起来像你可能试图做的那样。

此外,“NapDone:”不称为参考,它正式称为行标签。 :)

答案 1 :(得分:4)

为了帮助扩展其他答案..就像他们说你不应该使用GoTo来处理VBA中的任何事情,除了错误处理。

您应该做的是从另一个模块调用公共子/函数。例如,在第1单元中,您将拥有以下内容

Sub TestMod1()
Dim MyNumber As Integer

MyNumber = GetSquare(6)
'MyNumber returns from the function with a value of 36
End Sub

在模块2上你有

Public Function GetSquare(ByVal MyNumber As Integer)

GetSquare = MyNumber * MyNumber

End Function

所以现在你知道如何避免它。 GoTo不是很好的编程实践,因为你会有东西飞来飞去。尝试将您重复的代码分解为多个Subs,并在需要时调用它们,或者根据具体情况运行。然后你将进入类,它们只是代表一个对象,它将完成该对象的所有工作。

这可以让你走上正轨。