簡體   English   中英

VBA-將數組存儲在類中-類型不匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM