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



借口缺乏经验:在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

最新更新