下午好,
我想知道在VBA语言中是否有可能在其初始化时将参数传递给类,就像在Java等面向对象语言中所做的那样,您可以在其中创建参数化构造函数.事件"Class_Initialize()"不允许我输入参数.我怎么解决这个问题?
祝一切顺利.
我需要列出一个类的所有私有变量.就像是:
班级中的变量:
Dim varOne as String
Dim varTwo as Integer
Dim varThree as Date
Dim varFour as String
Run Code Online (Sandbox Code Playgroud)
Sub重新编译所有变量名称:
For Each classVariable In clsMyClass
Msgbox classVariable.Name
Next
Run Code Online (Sandbox Code Playgroud)
结果:
varOne
varTwo
varThree
varFour
Run Code Online (Sandbox Code Playgroud)
我在这个论坛找到了解决方案,但仅适用于VB.NET,而不适用于VBA.无论如何我能在VBA中做到这一点吗?
提前致谢.
下面的代码有什么问题:
Private Sub btnTest_Click()
Dim obj_Utilitario As cls_Utilitario
Dim objColecao As Collection
Dim item As Variant
Set obj_Utilitario = New cls_Utilitario
Set objColecao = obj_Utilitario.ColecaoForm(Me.Form)
For Each item In objColecao
MsgBox item.Name
Next item
Set objColecao = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
这是cls_Utilitario类代码:
Public Function ColecaoForm(arg_form As Object) …Run Code Online (Sandbox Code Playgroud) 当我单击(或双击)它时,需要在Access表单的文本框中选择所有文本。我尝试了以下代码,但未成功:
Me.txt_CompraPreco.SelStart = 0
Me.txt_CompraPreco.SelLength = Len(Me.txt_CompraPreco)
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我有一个名为cls_Utilitario的类,其方法如下:
Public Function LimparCampos(arg_form As Object)
Dim campo As Control
For Each campo In arg_form.Controls
With campo
Select Case .ControlType
Case acComboBox, acTextBox
.Value = Null
End Select
End With
Next campo
Set campo = Nothing
Set arg_form = Nothing
End Function
Run Code Online (Sandbox Code Playgroud)
我在表单中有以下代码:
Private Sub btnNovo_Click()
Dim obj_Utilitario As cls_Utilitario
Set obj_Utilitario = New cls_Utilitario
obj_Utilitario.LimparCampos (Me.Form)
End Sub
Run Code Online (Sandbox Code Playgroud)
如果我将参数更改为"对象"类型,为什么它不起作用?我也试过"Variant"和"Form"类型但是没有成功.
提前致谢.