借口缺乏经验:在VBA中,我写了一个子例程,它改变了通过的参数的价值。这对于全局字段成功,但在传递时,它确实不是表单上的文本框。我希望文本框会更改,但事实并非如此。因此,例如(伪代码(:
Public Subroutine ChangeVal (ByRef abcde)
abcde = abcde * 2
End Sub
ChangeVal "txtabcde"
不起作用。
您的传递在一个值中,但Excel不会知道此值属于任何特定对象。要做您想做的事(假设您的文本框是一个带有" textbox1"名称的Activex Textbox(,您将使用类似的东西:
Public Sub ChangeVal2(ByRef obj)
obj.Value = obj.Value * 2
End Sub
这样称呼:
ChangeVal2 ActiveSheet.TextBox1