0
我被困在一個非常簡單的問題上。我有以下字符串:字符串操作VBA
Dim s as String
s = "031, 603-604, 803-804, 617, 817, 619, 819, 621, 821, 627, 827, 629, 829, 831, 645-646, 845-846, 647-648, 847-848, 649-650, 849-850, 667-668, 867-868, 671-672, 871-872, 677-678, 675-676, 875-876, 679-680"
現在我想代碼分離到一個數組,所以我有一個循環會通過炭炭(concatting了),如果字符可以是「」或‘ - ’ ,返回代碼並重置concatting。
For i = 1 To Len(s)
If Not ((Mid(s, i, 1) = ",") Or (Mid(s, i, 1) = " ") Or (Mid(s, i, 1) = "-")) Then
code = code & Mid(s, i, 1)
ElseIf (Mid(s, i, 1) = ",") Or (Mid(s, i, 1) = "-") Then
Debug.Print code
code = ""
End If
Next i
非但沒有031,603,604 ...我得到031,603-604 ...基本上循環忽略(Mid(s, i, 1) = "-")
一部分,但接受(Mid(s, i, 1) = ",")
,以重置代碼值的條件。
非常感謝,這是有道理的。我將如何去爲這個特定任務創建一個函數(返回數組)?公共函數代碼(s as String)作爲字符串; s = Replace(替換(s,「 - 」,「,」),「」,「」); code = Split(s,「,」);結束功能;當我嘗試將它作爲tmpArr = code(s)運行時,它會返回一個Compile Error:Expected數組。我明白錯誤的意思,但我不知道該如何糾正。我認爲它與函數本身的聲明有關。 – emihir0
什麼是代碼?你爲什麼使用代碼並將其分配給tmpArr?如果你可以打開一個**新線程**,那將是非常好的,因爲評論中的代碼非常混亂,並且不清楚你打算做什麼。 – PaulFrancis