Вот что я пытаюсь сделать:
Если J содержит слово Ответчик
А также
Если F содержит слово выкупа
затем
Если G содержит "V ESTATE OF"
Тогда держите все справа от "OF"
Иначе, если G содержит "VS"
Тогда держите все справа от "VS"
Иначе, если G содержит «V» (обратите внимание на пробелы до и после V)
Затем держите все справа от буквы "V"
Если K содержит "" (два последовательных пробела)
Тогда держи это
Или же
Если K содержит «НЕИЗВЕСТНЫЙ ВЫСТУПЛЕНИЕ»
Затем удалите самый последний символ ячейки, который будет запятой
И если клетка начинается с подчеркивания
Тогда удали это
Тогда держи это
Присвойте результат G соответствующей ячейке N
Присвойте результат K соответствующей ячейке O
Вот что я сделал:
Sub Inspect()
Dim RENums As Object
Dim RENums2 As Object
Dim LValue As String
Dim LValue2 As String
Set RENums = CreateObject("VBScript.RegExp")
Set RENums2 = CreateObject("VBScript.RegExp")
RENums.Pattern = "DEFENDANT"
RENums2.Pattern = "FORECLOSURE"
Dim lngLastRow As Long
lngLastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Dim i
For i = 1 To lngLastRow
If RENums2.test(Range("F" & i).Value) Then
If RENums.test(Range("J" & i).Value) Then
pos = InStr(Range("G" & i), " V ")
pos2 = InStr(Range("G" & i), " VS ")
pos3 = InStr(Range("G" & i), " V ESTATE OF ")
dbspace = InStr(Range("K" & i), " ")
If pos3 <> 0 Then
LValue2 = Right(Range("G" & i), Len(Range("G" & i)) - pos * 2)
ElseIf pos <> 0 Then
LValue2 = Right(Range("G" & i), Len(Range("G" & i)) - pos - 2)
ElseIf pos2 <> 0 Then
LValue2 = Right(Range("G" & i), Len(Range("G" & i)) - pos - 2)
End If
If dbspace <> 0 Then
LValue = Range("K" & i)
End If
schr = Right(LValue, 1)
If schr = "_" Then
With WorksheetFunction
Range("N" & i).Value = Trim(.Substitute(LValue, "_", ""))
End With
Else
Range("N" & i).Value = Trim(LValue)
End If
Range("O" & i).Value = Trim(LValue2)
End If
End If
Next i
End Sub
В приведенном выше макросе в некоторых случаях правильное значение никогда не вставляется в N. Скорее, значение из другой ячейки в K вставляется в неправильную ячейку в N.
Я приложил пример таблицы Excel по ссылке ниже, на которую я никогда не получал ответ:
http://www.excelforum.com/excel-programming/775695-wrong-data-copied-into-new-cell-from-macro.html
Спасибо за ответ.