借口缺乏经验:在VBA中,我编写了一个子程序,用于更改传递参数的值。这对于全局字段成功,但在传递表单上的文本框时却没有。我希望文本框能够改变,但事实并非如此。例如(伪代码):
Public Subroutine ChangeVal (ByRef abcde)
abcde = abcde * 2
End Sub
ChangeVal "txtabcde"
不起作用。
答案 0 :(得分:0)
你传递一个值但是excel并不知道这个值属于任何特定的对象。要做你想做的事(假设你的文本框是一个名为' TextBox1'的ActiveX文本框),你可以使用这样的东西:
Public Sub ChangeVal2(ByRef obj)
obj.Value = obj.Value * 2
End Sub
并称之为:
ChangeVal2 ActiveSheet.TextBox1