小编Tho*_* My的帖子

类'VBA初始化中的参数

下午好,

我想知道在VBA语言中是否有可能在其初始化时将参数传递给类,就像在Java等面向对象语言中所做的那样,您可以在其中创建参数化构造函数.事件"Class_Initialize()"不允许我输入参数.我怎么解决这个问题?

祝一切顺利.

vba

5
推荐指数
2
解决办法
1万
查看次数

如何在VBA中循环类属性

我需要列出一个类的所有私有变量.就像是:

班级中的变量:

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)

oop vba class

4
推荐指数
1
解决办法
4586
查看次数

如何使用Access VBA在textBox.Setfocus之后选择TextBox中的所有文本

当我单击(或双击)它时,需要在Access表单的文本框中选择所有文本。我尝试了以下代码,但未成功:

Me.txt_CompraPreco.SelStart = 0
Me.txt_CompraPreco.SelLength = Len(Me.txt_CompraPreco)
Run Code Online (Sandbox Code Playgroud)

提前致谢。

vba access-vba

2
推荐指数
1
解决办法
1万
查看次数

在VBA中将表单对象作为类参数传递

我有一个名为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"类型但是没有成功.

提前致谢.

vba class access-vba

1
推荐指数
1
解决办法
2980
查看次数

标签 统计

vba ×4

access-vba ×2

class ×2

oop ×1