2017-04-17 76 views
1

藉口缺乏經驗:在VBA中,我編寫了一個子例程,用於更改所傳遞參數的值。這對全局字段是成功的,但在傳遞時,例如表單上的文本框不成功。我希望文本框可以改變,但不會。例如(僞代碼):VBA - 將表單字段傳遞給使用ByRef的子例程

Public Subroutine ChangeVal (ByRef abcde) 
abcde = abcde * 2 
End Sub 

ChangeVal "txtabcde" 

不起作用。

回答

0

你傳遞一個值,但excel不會知道這個值屬於任何特定的對象。做你想做的事(假設你的文本框是一個ActiveX文本框與「TextBox1的」名字),你不得不使用這樣的事情:

Public Sub ChangeVal2(ByRef obj) 
    obj.Value = obj.Value * 2 
End Sub 

,並調用它是這樣的:

ChangeVal2 ActiveSheet.TextBox1 
相關問題