| Код |
|---|
Sub rneig()
Dim Iter1 As String
For i = 2 To 414
Start = UCase(ThisWorkbook.Sheets(1).Cells(i, 11))
posNom1 = InStr(Start, "№")
posNom2 = InStr(Start, "N")
If posNom1 > 0 Then
Iter1 = Split(Start, "№")(1)
posNom = posNom1
ElseIf posNom2 > 0 Then
Iter1 = Split(Start, "N")(1)
posNom = posNom2
End If
posot = InStr(posNom, Start, "ОТ")
posOther = RegularExpression(Iter1, "/(\d){2}")
If posot > 0 Then
Iter1 = Split(Iter1, "ОТ")(0)
ElseIf posOther > 0 Then
Iter1 = Mid(Iter1, 1, posOther + 4)
End If
ThisWorkbook.Sheets(1).Cells(i, 30) = Iter1
Next i
End Sub
Function RegularExpression(FindIn As String, Expr As String) As String
Set RegExp = CreateObject("VBScript.RegExp")
With RegExp
.Global = False 'Все совпадения или только первое?
.IgnoreCase = True 'Регистр неважен?
.MultiLine = True 'Игнорировать переносы строк?
.Pattern = Expr
End With
Set Matches = RegExp.Execute(FindIn)
RegularExpression = Matches.Item(0).FirstIndex
Set Matches = Nothing
Set RegExp = Nothing
End Function
|
Все ОК, кроме 291 и 340 строк....из-за детского садика(
Изменено: - 28.06.2019 16:54:30