VBA:使用值初始化对象?

use*_*776 21 variables vba initialization object

我希望能够初始化一个

CArticle 具有以下属性:

Private pNumber As String
Private pQuantity As Double
Run Code Online (Sandbox Code Playgroud)

具有空值,预定义值或当前值.我怎样才能做到这一点?我正在考虑以下几点:

新空 CArticle

pNumber
pQuantity
Run Code Online (Sandbox Code Playgroud)

新的假人 CArticle

pNumber
pQuantity = 99999
Run Code Online (Sandbox Code Playgroud)

新的init CArticle(number, quantity)

pNumber = number
pQuantity = quantity
Run Code Online (Sandbox Code Playgroud)

ja7*_*a72 28

颈部疼痛,但这是唯一的方法.

文件CArticle

Option Explicit

Private pNumber As String
Private pQuantity As Double

Private Sub Class_Initialize()
    pNumber = vbNullString
    pQuantity = 0
End Sub

Public Sub InitializeWithValues(ByVal number As String, ByVal quantity As Double)
    pNumber = number
    pQuantity = quantity
End Sub

Public Sub InitializeDefaultValues()
    pNumber = vbNullString
    pQuantity = 99999
End Sub
Run Code Online (Sandbox Code Playgroud)

并在调用模块中

Dim art As New CArticle       ' Initialize value to empty
art.InitializeWithValues "Bowtie", 100     ' and assign values

Set art = New CArticle        ' Initialize values to empty
art.InitializeDefaultValues   ' Initialize values to default
Run Code Online (Sandbox Code Playgroud)

  • 为了从工作表表中提取值,创建一个`InitializeFromRange(ByVal r as Range)方法可能很有用. (3认同)