0

我对 VBA 很陌生(10 小时),有一点 Python 背景。在索引返回函数的一部分时,是否有与 Python 等效的 VBA?这就是我的意思:如果我有如下所示的 VBA 代码:

Split(Worksheets("range").Range("K2").Offset(i, 0), "-", "-1")

而且我只想要拆分的第三部分,我该如何输出呢?

我想这是一个非常简单的问题,但我似乎无法想通。提前致谢!

4

2 回答 2

1

如果此函数正在设置变量/数组变量的值,例如:

Dim myArray as Variant
myArray = Split(Worksheets("range").Range("K2").Offset(i, 0), "-", "-1")

然后您应该能够引用数组中的第三项,例如:

Debug.Print myArray(2) 'Option Base 0 -- Default'

或者,如果你有Option Base 1那么:

Debug.Print myArray(3)

这些示例使用常量表达式(2 或 3)来索引数组项。您还可以使用 match 函数返回一个动态值,例如,假设您正在此数组中查找“Steve”的值:

Dim aItem as Long
aItem = Application.Match("Steve", myArray, False)

这将返回一个 long/integer,然后您可以像这样引用它:

Debug.Print myArray(aItem)

干杯!

于 2013-05-08T16:26:19.727 回答
0

就像是:

Dim splitArr() as String, Counter as Long
Dim textString as String
textString = Worksheets("range").Range("K2").Offset(i, 0).Value2


splitArr = split(textString,"-",-1)
For cntr = LBound(splitArr) To UBound(splitArr)
    'here you can process splitArr(cntr)
Next cntr

' Just accessing the third element can be done by accessing splitArr(LBound(splitArr)+2)

请注意,根据您在 VBA 中的设置数组从 0 或从 1 开始,上述代码在任何一种情况下都有效。另请注意,如果字符串为空,您可能需要捕获错误/最终会得到一个未初始化的数组。

于 2013-05-08T16:30:00.870 回答