2011-09-23 18 views
1

E.g.鑑於表1包含:如何轉到不同對象中的線標籤?

Ref: Do things

我如何可以直接在模塊1〜GoTo Ref代碼?如果我是在Sheet1代碼moduke那麼我可以簡單地使用 Goto Ref

但是,這並不在不同的模塊

工作
+0

我想你將不得不整理這個問題,並可能爲應用程序添加一個標記。 – Fionnuala

+3

不可能。無論如何,除非你絕對必須使用'GoTo',否則幾乎不會。 –

回答

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,並在需要時調用它們,或者在任何情況下調用它們。然後你會進入類,它們被包裝起來代表一個對象,它將完成所有對象的工作。

這應該讓你走上正確的軌道。

8

你的問題是不明確的,你沒有提供任何代碼,所以這是一個推測。

轉到用於跳轉到同一子/功能內的不同位置。你不能用它來跳轉到其他子例程或函數的一部分,這聽起來像你可能試圖做的。

此外,「NapDone:」不稱爲參考,它正式被稱爲線標籤。 :)

+0

謝謝 - 新的在這裏。我通過在Sheet1中創建了一系列包含GoTo然後指向Module中的這些子集的子例程來解決這個問題。 – Felix

+0

沒問題,歡迎光臨!如果我的回答(或其他人的回答)是合適的答案,請選擇左上角的箭頭以「接受」答案。正如Jean-Francois Corbett在他的評論中提到的那樣,GoTo語句很少被需要,並且通常代表了修改例程邏輯的機會。 – aevanko