Excel VBA:什么是可以存储在数组中的string元素的最大数目

我正在尝试构build一个可以为用户提供更多function的插件。

这些function的基础是search1424个string元素的相当大的数据集,并返回每个相同匹配的数组元素位置。

我希望将数据集存储在VBA代码中,因为它永远不会改变,我不希望将它存储在电子表格中。 在构build数组时,我遇到了一个问题,即在添加第1278个元素时,整个数组将消失。

直到第1277个元素数组的作品,可以审讯。 只要我再添加一个元素,整个数组就消失了! 从我可以告诉我在VBA中允许的数组元素的最大数目,因为其他一些问题,这是失败的。

这是我的代码片段:

Function matsearch(ByVal MatSpec As Variant) As String Dim i As Integer, InstanceCount As Integer, LastInstance As Integer, FirstInstance As Integer Dim Table_1ASpecList() As String InstanceCount = 0 LastInstance = 1 Table_1ASpecList = Array("Spec_No", "SA/AS 1548", "SA/AS 1548", "SA/CSA-G40.21", "SA/EN 10028-2", "SA/EN 10028-3", "SA/EN 10028-7", "*****Many More Elements*****") For i = 0 To UBound(Table_1ASpecList) If MatSpec = Table_1ASpecList(i) Then InstanceCount = InstanceCount + 1 LastInstance = i + 1 End If Next i FirstInstance = LastInstance - InstanceCount matsearch = FirstInstance & " " & InstanceCount 

任何想法,为什么这不工作?????

在Visual Basic编辑器中,将ThisWorkbook的IsAddIn属性更改为False。 激活工作簿并将要填充到Table_1ASpecList中的值input到工作表中。 给范围一个名字,说“MyValues”。 将IsAddIn属性更改回True,然后将您的代码修改为:

 Dim Table_1ASpecList() As Variant Table_1ASpecList = Sheet1.Range("MyValues").Value