gpt4 book ai didi

excel - VBA 将表单控件传递给函数

转载 作者:行者123 更新时间:2023-12-04 19:47:39 24 4
gpt4 key购买 nike

全部,

我一直在纠结这个问题:是否可以将对象传递给函数?

这是我想要完成的:

  1. 获取在表单上按下的控件的名称(作为对象?)
  2. 将控件的名称发送到函数“MyFunction”(作为引用?)
  3. 禁用“MyFunction”上的相同控件

form1 调用:

Private Sub button1_Click()
Dim caller As String
caller = Form1.ActiveControl.Name

MyFunction(caller)

End Sub 'I'm able to pass it as a string

button1_Click 调用 MyFunction 并将 caller 传递给它:

Private Sub MyFunction(caller As String)
caller.Enabled = False
End Sub

我知道这不能用作字符串。我怎么可能把它当作一个实际的对象呢?谢谢!

最佳答案

将对象传递给子对象几乎没有问题:

Private Sub Disable(c As Control)
MsgBox c.Name
c.Enabled = False
End Sub

Private Sub CommandButton1_Click()
Disable CommandButton1
End Sub

Private Sub CommandButton2_Click()
Disable CommandButton2
End Sub

Private Sub CommandButton3_Click()
Disable CommandButton3
End Sub

在上面我创建了一个带有三个按钮的用户窗体,他们在点击时说出他们是谁,然后被禁用。

注意

Disable CommandButton1

可以替换为

Disable Me.ActiveControl

甚至只是

Disable ActiveControl

关于excel - VBA 将表单控件传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36524806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com