gpt4 book ai didi

excel - 使用 ComboBox、ListBox 和 TextBox 作为参数来清除它们的函数会导致类型不匹配

转载 作者:行者123 更新时间:2023-12-02 11:17:48 24 4
gpt4 key购买 nike

我是 VBA 新手,找不到解决方案:我正在尝试编写一个函数来清除 ComboBox、ListBox 和 TextBox,但我得到了

Run time-error 13: Type Mismatch error

我不明白为什么。

我正在使用 ActiveX 控件。

'sub for resetting
Sub Cancella(testo As TextBox, lista As ListBox, user As ComboBox)

testo.Text = ""
lista.Clear
user.Clear

End Sub


Sub CommandButtonReset_Click()
'Button locaed in an excelSheet called "Giustificativo"

'InputNumero1 is an textBox in "giustificativo
'ListArticoli1 is a listobx (same sheet)
'ComboBoxUtenti is a comboBox (ame sheet)
Call Cancella(InputNumero1, ListArticoli1, ComboBoxUtenti)

End Sub

我做错了什么或者这是根本不可能做的事情?非常感谢!

最佳答案

  1. 请注意,有两种类型的控件。 表单控件ActiveX 控件。因此,您必须确保声明正确的类型,例如 MSForms.TextBox
    请参阅What is the difference between "Form Controls" and "ActiveX Control" in Excel 2010?
    VBA MSFORMS vs Controls - whats the difference

  2. 确保指定控件位于哪个工作表上,这样 Excel 就不会猜测您指的是哪个工作表。

我建议激活Option Explicit:在 VBA 编辑器中,转到工具选项 Require Variable Declaration

Option Explicit

Sub Cancella(testo As MSForms.TextBox, lista As MSForms.ListBox, user As MSForms.ComboBox)
testo.Text = ""
lista.Clear
user.Clear
End Sub

Sub CommandButtonReset_Click()
With Worksheets("Giustificativo")
Cancella .InputNumero1, .ListArticoli1, .ComboBoxUtenti
End With
End Sub

关于excel - 使用 ComboBox、ListBox 和 TextBox 作为参数来清除它们的函数会导致类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54421964/

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