无效地使用ListObject类型的属性



我正在工作一个简单的UserForm在Excel与VBA的目的是传递一个表(因此一个ListObject)到UserForm,以便它可以处理的变化,并有做我想要的任务所需的所有数据。

现在我有两个属性,一个是String类型,包含一个操作类型,另一个是Table。

目前,UserForm代码如下:

Private msOperationType As String
Private msDataTable As ListObject
Property Let OperationType(sText As String)
msOperationType = sText
NewOperationTitle.Caption = "New operation: " & sText
InformationLabel.Caption = "Fill out all the information regarding the " & sText & " operation"
End Property
Property Let DataTable(sDataTable As ListObject)
msDataTable = sDataTable
End Property
Private Sub UserForm_Initialize()
'Code here will do things
End Sub

在我的模块中,我有以下代码:

Dim AddOperationForm As UserForm1
Set AddOperationForm = New UserForm1
AddOperationForm.OperationType = "Add"
AddOperationForm.DataTable = Worksheets(14).ListObjects("Operations")
AddOperationForm.Show

然而,当我运行代码(从工作表中的按钮启动)时,我得到一个Compile Error: Invalid use of property,Property Let DataTable(sDataTable As ListObject)被突出显示,但这并不能帮助我理解为什么我的代码有问题。等效代码的字符串为OperationType工作得很好,所以我不确定我如何能修复这个

您应该使用property set而不是property let。属性let应该只用于值类型,而对象类型应该使用属性set。

参见在VB6中属性集和属性让之间的区别是什么?

最新更新