[英]VBA - Store an array inside of a class - Type mismatch
我一直在搜尋,但似乎沒有辦法解決我的問題。 這是問題所在:
我想存儲“鍵”數組這是我的簡單類:
Private pkeys_length As Integer
Private pkeys() As String
Public Property Get keys_length() As Integer
keys_length = pkeys_length
End Property
Public Property Let keys_length(arg As Integer)
pkeys_length = arg
End Property
Public Property Get Keys() As String
Keys = pkeys()
End Property
Public Property Let Keys(ByVal arg As String)
ReDim pkeys(0 To pkeys_length) As String
pkeys = arg
End Property
這是我要存儲的內容:
Dim str_pkeys() As String
Dim pkey_count As Integer
pkey_count = CountPrimaryKeys(stbl)
'Store the keys of that table
ReDim str_pkeys(pkey_count) As String
keyset_1.keys_length = pkey_count
str_pkeys = FindPrimaryKeys(keyset_1.Table)
keyset_1.Keys = str_pkeys
就目前而言,它給出了錯誤Compile Error: Type mismatch
我在存儲數組時遇到了幾個問題,我不確定我是否真的到了任何地方。 這是我無法修復的唯一錯誤。 我需要做的就是將字符串數組存儲在類中。
有人熟悉該怎么做嗎?
我認為您需要在Get屬性中使用String()
並在Let中刪除ByVal
:
Private pkeys_length As Integer
Private pkeys() As String
Public Property Get keys_length() As Integer
keys_length = pkeys_length
End Property
Public Property Let keys_length(arg As Integer)
pkeys_length = arg
End Property
Public Property Get Keys() As String()
Keys = pkeys
End Property
Public Property Let Keys(arg() As String)
ReDim pkeys(0 To pkeys_length) As String
pkeys = arg
End Property
除了這個小的設計建議:您真的需要一個Set作為數組長度嗎? 為什么不將其包括在數組的集合中,而只提供Get呢?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.