【问题标题】:VBA - passing form field to a subroutine using ByRefVBA - 使用 ByRef 将表单字段传递给子例程
【发布时间】:2017-04-17 17:28:58
【问题描述】:

请原谅缺乏经验:在 VBA 中,我编写了一个更改传递参数值的子例程。它对全局字段成功执行此操作,但在传递例如表单上的文本框时却没有。我希望文本框会改变,但事实并非如此。所以例如(伪代码):

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

ChangeVal "txtabcde"

不起作用。

【问题讨论】:

    标签: vba parameters arguments subroutine byref


    【解决方案1】:

    您传入一个值但 excel 不会知道该值属于任何特定对象。要执行您想做的事情(假设您的文本框是一个名为“TextBox1”的 ActiveX 文本框),您可以使用以下内容:

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

    然后这样称呼它:

    ChangeVal2 ActiveSheet.TextBox1
    

    【讨论】:

      猜你喜欢
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-08
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多