У меня есть строка в ячейке, скажем, она говорит «Клиент Ref: F123456PassPlus». Возможно, что строка не имеет буквы перед цифрами, возможно, есть символ в числах, и возможно существует пробел между буквой и цифрами. Мне нужно извлечь только числа в виде переменной. У меня есть код для этого, но он не знает, когда прекратить цикл через строку. Он должен остановиться, когда есть что-то другое, кроме числа или символа, но оно продолжается.Excel VBA цикл через строку чисел до тех пор, пока не будет найдена буква
IsNumber = 1
ref = ""
If branch = "" Then
e = b
Else
e = b + 1
End If
f = 1
While IsNumber = 1
For intpos = 1 To 15
ref = Mid(x, e, f)
f = f + 1
Select Case Asc(ref)
Case 45 To 57
IsNumber = 1
Case Else
IsNumber = 0
Exit For
End Select
Next
IsNumber = 0
Wend
Любые переменные буквы там, которые не имеют определения, были определены ранее, е указывает код, где начать копирование и х является ячейка, которая содержит строку. На данный момент все работает отлично, оно начинается с числа и копирует их и строит их в большую и большую строку, но оно остановится только тогда, когда intpos достигнет 15.
Везде, где вы хотите закончить суб, просто добавьте 'Exit Sub'. – BruceWayne
Мне нужен макрос, чтобы узнать, когда в нем есть письмо (или, желательно, прямо перед этим), тогда я бы использовал «Exit For» в моем коде. С тем, что я написал, я думал, что это должно быть так, но, видимо, нет. –
Вы debug.print Asc (ref), чтобы увидеть значения? – CPMunich