Warm tip: This article is reproduced from serverfault.com, please click

excel-如何在数组上使用 for each 循环?

(excel - How can I use a for each loop on an array?)

发布于 2010-11-19 18:22:22

我有一个字符串数组:

Dim sArray(4) as String

我正在遍历数组中的每个字符串:

for each element in sarray
  do_something(element)
next element

do_something 接受一个字符串作为参数

我收到一个错误,将元素作为字符串传递:

ByRef 参数不匹配

我应该将元素转换为字符串或其他东西吗?

Questioner
Alex Gordon
Viewed
12
8,293 2015-08-09 21:30:54

Element 需要是一个变体,所以你不能将它声明为一个字符串。你的函数应该接受一个变体,如果它是一个字符串,但只要你传递它 ByVal。

Public Sub example()
    Dim sArray(4) As string
    Dim element As variant

    For Each element In sArray
        do_something (element)
    Next element
End Sub


Sub do_something(ByVal e As String)

End Sub

另一种选择是在传递变量之前将其转换为字符串。

  do_something CStr(element)