Private Sub btnsubmit_Click()
Dim Msg As String
Dim pos1 As Integer
Dim pos2 As Integer
Dim Count As Integer
Dim flag As Integer
Dim telphno
Msg = TextBox1.Value
pos1 = 1
pos2 = 1
flag = 0
Do While pos1 < Len(Msg)
pos1 = InStr(pos1, Msg, "[")
If flag = 0 Then
pos2 = InStr(pos2, Msg, "]")
End If
If pos2 - pos1 < 5 Then
ActiveCell.Value = Mid(Msg, pos1 + 1, pos2 - pos1 - 1)
Count = 0
'Loop through the entire string
For i = pos2 To Len(Msg)
'Check to see if the character is a numeric one
If IsNumeric(Mid(Msg, i, 1)) Then
'Add it to the answer
telphno = telphno + Mid(Msg, i, 1)
Count = Count + 1
'Check to see if we have reached 10 digits
If Count = 10 Then Exit For
Else
telphno = ""
Count = 0
End If
Next i
ActiveCell.Offset(0, 1).Value = telphno
flag = 0
ActiveCell.Offset(1, 0).Select
pos1 = pos2 + 1
pos2 = pos1
telphno = ""
Else
flag = 1
pos1 = pos1 + 1
End If
Loop
End Sub
Я пытаюсь извлечь символы между » [«и»] » в моей строке, но MID функция дает мне ошибку. Пожалуйста, помогите мне решить эту проблему.
После нахождения символов между » [«и»] » я ищу ближайшее 10-значное число. Я беру строку через TextBox (пользовательский ввод).
И печатать выход на листе Excel.
Для ex-
[A22]1239163332bcfhds[B23]6453jhddf2784637281ajdnjda[C33]dksamkd1288776655
Для вышеуказанной строки. Он должен дать —
A22 1239163332
B23 2784637281
C33 1288776655
Вход 2 —
@fiJaeasafiGpaaaaod [A1] # 42, 5532 23156 “63’ 8:355 dedmaa @656 663336, {33538365. sail & as" 53666 wee—9008799499. @dfis.ée.maae06 [A2] S/O éegddad mweefi @dfiE aaseaefi mwaossae We" flees?) all 359% as" fidee, wee—9886557596.
6903: WI 29365 amass @aoflae mafia] (me) sail was?“ asllmairid’, aha—9945173528. @6066 60333305 2:056. [A4] £06333 messes 03.91:
33:12:05 mews. 8.133133% a?" aiding as" mamas.
aha-9886444737. [50%. memergfios, [A5] mew 89335365 mamas.
mama. aan wage, as" eagdade, diam—9731742667. eaaiodfiaas. [A6]
ge Wagfiegd mwaofisae mafia) £3966.mafia).sail mg"), as" mairifi, met—9986611558. @8396 30653236 [A7] fleas 9395 fleas# 4138/38, Sgéegd 33905:,623 finaSeag soomrf,ao.&.&.‘w’ea§ss,13.29. fideaas 6:312:36,anaemia.all dog as" macaw-36,mom—9448166197.mamas 8985305 [A8192 ageng mews sambaaadefiaefiéfieo.all adswsg, all warm,dam—9945363102.@69535 games [A9]amasssesame@06.ao.&.dsaec56maisafid.aall .19 as" mamrid’,wag—9844644272.as.demam] 33mmadésada.Gall 836%62, as" 68,
wee:—8.839%:ngge [imam meme 033“flaccid weave.mweafid.all 623; as" maiarid,dam—9481161243.agodaé.8.ao.129330556 agaossae53%;.a?" & as" 5365366,mez—990187114-1.8884232296@2353e65@55.@05.9:330:36 @9033“we ems aim-.1353,swag.all 666663, as" maladdwag—8123565686.gang-56506 masses fiaofiaemafifleas mews,swag.all 8665383, as" mdwfid
aha—9845781954.[A10][A11][A12][A13][A14]535 3:633:56 [A15]@663 aaaaaefi SawadJaeawe: aa£eas€ mews,{3368366.sail 6.9% all 0369966,dam—9945707587eaoadfi mesmereaa’cfiwsl6:36:38 agaoisaefiasfiewéédaall 303:3, as" 03653613,dam-9900436152.0335eiedafi 5366 Qawaeeiapflsaecss,asasdne.aall wipe, as" 53566,Elma—9448218974.836 memergfios [A18]# 167,“&oa5555”15’ 2:336, 63:: @55,deg-353255 9:355 acme-3%,massarifi.aall 3.3.333 as” nae-36386,WEE—9342495800.@%§ mewaergfics [A19]# 794/8 oomfieo.modes mews,65366666.all 6333 as" mwwfi'fi,dam—9945434802.0535 Meme®$cs [A20]@30335 masses Mathewsmandaoddwsg.sail fine]; as" 53538363,met-9980170633.@506 memergaos903361103: 8365 Saaawsae3536333.Ball 36335623, as" 8966,Wei-9972675782[A17] [A21]
Ожидаемый Ouput —
A1 9008799499
A2 9886557596
A4 9886444737
A5 9731742667
A6 9986611558
A7 9448166197
и так далее до
A20 9980170633
Ваша проблема возникает, потому что вы не выходите из цикла, когда больше не
[...]
осталось пар.Если вы измените
чтобы иметь следующий код сразу после него, я думаю, что ваши проблемы уйдут:
Ваш расчет
pos2
также должен быть изменен ск
Это гарантирует, что вы выбираете местоположение первого
]
после текущего[
.После этих двух изменений ваш код правильно обрабатывает оба примера, приведенные в вашем вопросе … кроме записи записей для трейлинга
[A17]
и[A21]
во втором примере — я не уверен, действительно ли вы хотите, чтобы они игнорировались, или ваш второй пример был усечен частично через исходные данные.Ваш код «кричит» для использования
RegEx
, см. код ниже (пояснение внутри комментариев кода).Суб btnsubmit код