Извлечь текст между кавычками и перейти к следующей ячейке / строке VBA - PullRequest
0 голосов
/ 27 сентября 2019

У меня другой текст в столбце A между кавычками;я хотел бы извлечь текст между кавычками и переместить текст в следующий столбец (B) без кавычек.

Sub ExtractText() 
    Dim iPos1 As Integer 
    Dim iPos2 As Integer 

    iPos1 = InStr(Sheet1.Cells(2, 1), """ ") 
    iPos2 = InStr(Sheet1.Cells(2, 1), " """) 

    Sheet1.Cells(2, 2) = Trim(Mid(Sheet1.Cells(2, 1), iPos1 + 1, iPos2 - iPos1 - 1)) 
End Sub

Ответы [ 3 ]

2 голосов
/ 27 сентября 2019

Просто к сведению, простая функция может сделать это:

=IF(ISNUMBER(FIND("""",A2)),TRIM(MID(SUBSTITUTE(A2,"""",REPT(" ",999)),999,999)),A2)

enter image description here

1 голос
/ 28 сентября 2019

Опираясь на необходимость:

  • Использовать VBA
  • Loop column A
  • Извлекать только при возврате двойных кавычек (более 1)

Попробуйте код ниже:

Sub Test()

Dim arr As Variant
Dim lr As Long, x As Long

With Sheet1 'Change according to your sheet's CodeName
    lr = .Cells(.Rows.Count, 1).End(xlUp).Row
    arr = .Range("A1:A" & lr).Value
    For x = LBound(arr) To UBound(arr)
        If InStr(1, arr(x, 1), """") < InStrRev(arr(x, 1), """") Then
            .Cells(x, 2) = Trim(Split(arr(x, 1), """")(1))
        Else
            '.Cells(x, 2) = arr(x, 1) ': Remove the single quote if need be
        End If
    Next x
End With

End Sub
1 голос
/ 27 сентября 2019

Поскольку Split уже было предложено, вот пример:

Sub ExtractText()
    Dim splitText As Variant
    splitText = Split(Sheet1.Cells(2, 1).Value, """")

    Sheet1.Cells(2, 2).Value = Trim$(splitText(1))
End Sub

Пример: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...