arrays - VBA 中将完整数组从一个用户表单列表传输到另一个用户表单列表的最佳策略是什么?
问题描述
我将二维数组(第一列标题和所有列号)的内容传递给名为 Listbox1 的用户窗体。在这里,用户选择传递给 Listbox2 的项目,最后用户激活一个将数据发送到 Web 服务的进程。
到目前为止,我已经设法仅使用数据标题填充 Listbox1,但是在保留 listbox2 中的所有值时遇到了问题,而不仅仅是标题。我想在用户窗体级别创建一个私有变量来存储完整的数组,但它似乎会产生与 let/get 属性的类型不匹配问题。
用两个列表处理全套数据的最佳策略是什么?
Private pArr As Variant
Public Property Get arr() As Variant
Set arr = pArr
End Property
Public Property Let arr(Value As Variant)
Set pArr = Value
End Property
Private Sub LoadModelData()
Dim i As Integer
Dim myArray As Variant
Dim v As Variant
Dim mystring As String
myArray = ReadModelData(this is the function returning the array data from a range)
Set pArr = myArray
For i = LBound(myArray) To UBound(pArr)
If pArr(i)(1, 1) <> vbNullString Then
frmListModelItms.List1.AddItem (pArr(i)(1, 1))
End If
Next i
End Sub
解决方案
我的理解是arr
你班级的财产是一个array
,而不是一个object
因此不要使用Set
关键字:
Private pArr As Variant
Public Property Get arr() As Variant
arr = pArr
End Property
Public Property Let arr(Value As Variant)
pArr = Value
End Property
推荐阅读
- mysql - 如果不存在条件mysql则插入一个元组
- reactjs - 修改反应颜色选择器设计
- java - 如何让Android Oreo+后台定时发送通知类
- android-studio - app:checkDebugDuplicateClasses 在 android studio 中失败
- docker - 从 Docker 在 Openshift 容器平台上部署 Elasticsearch
- python-3.x - 我想推出一款需要 Mame 的游戏
- git - Git推送不适用于私有存储库
- unity3d - 如何从 Unity MRTK-WebRTC 检索视频流?
- java - Android:如何从扩展应用程序的类中获取应用程序上下文作为活动?
- jquery - 如何在 PHPMailer 中使用 JSON 和 AJAX 与不同的消息内容