excel - 使用 ListObject 类型的属性无效
问题描述
我正在使用 VBA 在 Excel 中处理一个简单的用户表单,目的是将一个表(因此是一个 ListObject)传递给用户表单,以便它可以处理更改并拥有执行我想要的任务所需的所有数据。
现在我有两个属性,一个是包含操作类型的 String 类型,另一个是 Table。
截至目前,用户窗体代码如下:
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
但是,当我运行代码(从工作表中的按钮启动)时,我得到 aCompile Error: Invalid use of property
并Property Let DataTable(sDataTable As ListObject)
突出显示,但这并不能帮助我理解为什么我的代码存在问题。OperationType 的 String 的等效代码工作正常,所以我不确定如何解决这个问题
解决方案
您应该使用属性集而不是属性让。属性 let 应该只用于值类型,而对象类型应该使用属性集。
推荐阅读
- python - 带有图像的 Tkinter Treeview:无效的状态名称 pyimage2
- python - 如何在 Python 中编写与 urllib.request.openurl 类似的代码
- android - 在android中打印Intent值时出错的日志语句
- php - PHP DOMDocument 文件名中带有 urlencoded 字符的困难
- java - 如何在不使用内置库方法的情况下对 ArrayList 进行排序?(爪哇)
- android - Android Studio 3.1.2 不断显示错误“请选择 Android SDK”
- postgresql - 许多 Postgres 进程可以使用相同的数据目录运行吗?
- javascript - 在选择一个选项时不发送文本框值
- firebase - FireBase Ping 延迟
- python - 如何从 HTML 中的该属性中提取字符串?