VBA:为什么我的FOR循环没有返回任何东西?

时间:2017-07-27 16:35:47

标签: vba ms-access access-vba

整体目标是在逗号之间返回字符,并在另一段代码中使用它们。如果有人知道更优化的方式,请告诉我。

问题:

我正在尝试在字符串中找到逗号的位置。

字符串:

Dim st As String
st = "1642377,001642381,010301642379"

我的尝试:

For pos = 1 To Len(st)

     If Mid(st, pos, 1) = "," Then

         MsgBox ("Position of comma:" & pos)

     End If

 Next

目前正在返回:

代码没有返回任何内容。 If条件不会返回true。

预期结果:

MsgBox应弹出两次,每次显示逗号的位置。

1 个答案:

答案 0 :(得分:2)

使用分割功能。它返回一个字符串数组

Dim parts() As String, p As Variant

parts = Split("1642377,001642381,010301642379", ",")
For Each p In parts
    Debug.Print p
Next

打印

1642377
001642381
010301642379

您使用的是两个不同的值:stMe.Text585.Value。你的意思是在两个地方使用st吗?如果我这样做,代码可以工作,它返回位置8和18。