似乎没有其他答案对我有用,所以我不得不提出一个每个人都认为遇到麻烦的问题。任何其他语言的简单东西,但VBA。我只是想初始化一个全局字符串数组,并在我的主要子中使用它。
这是test1,我试图从公共函数返回它:
Public Function effthis1() As String()
ReDim effthis1(0 To 10)
myStr = "a b c d e f g h i j k"
strsplit = Split(myStr)
j = LBound(effthis)
For Each word In strsplit
effthis1(j) = word
j = j + 1
Next
End Function
Sub test1()
testStr = effthis1(4)
MsgBox testStr
End Sub
这是test2,我尝试使用在主子调用中调用的sub:
Public effthis2() As String
Sub declareMyArray()
effthis2(0) = "a"
effthis2(1) = "b"
effthis2(2) = "c"
effthis2(3) = "d"
effthis2(4) = "e"
effthis2(5) = "f"
effthis2(6) = "g"
effthis2(7) = "h"
effthis2(8) = "i"
effthis2(9) = "j"
effthis2(10) = "k"
End Sub
Sub test2()
declareMyArray
MsgBox effthis2(4)
End Sub
MSDN根本没有帮助。在此先感谢,乔治
答案 0 :(得分:2)
使用你的第一个例子,你必须声明变量,然后不需要运行循环就可以获得该字符串。
secondViewController.secondobject = secondobject;
编辑:
根据你的评论,那么teststr必须是一个加载整个数组的数组:
Public Function effthis1(j As Integer) As String
Dim strsplit() As String
myStr = "a b c d e f g h i j k"
strsplit = Split(myStr)
effthis1 = strsplit(j)
End Function
Sub test1()
testStr = effthis1(4)
MsgBox testStr
End Sub
答案 1 :(得分:1)
在第二个示例中,您必须在分配数组之前分配数组的大小,因此请将其更改为:
ReDim effthis2(10)
effthis2(0) = "a"
effthis2(1) = "b"
...
(公共数组也必须在模块中)