VBA - 使用ByRef将表单字段传递给子例程

时间:2017-04-17 17:28:59

标签: vba parameters arguments subroutine byref

借口缺乏经验:在VBA中,我编写了一个子程序,用于更改传递参数的值。这对于全局字段成功,但在传递表单上的文本框时却没有。我希望文本框能够改变,但事实并非如此。例如(伪代码):

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

ChangeVal "txtabcde"

不起作用。

1 个答案:

答案 0 :(得分:0)

你传递一个值但是excel并不知道这个值属于任何特定的对象。要做你想做的事(假设你的文本框是一个名为' TextBox1'的ActiveX文本框),你可以使用这样的东西:

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

并称之为:

ChangeVal2 ActiveSheet.TextBox1