VBA를 사용하여 두 개의 동일한 문자 사이의 문자열에서 텍스트 추출

user1996971

셀 내에 다음 문자열이 있다고 가정 해 보겠습니다.

E. Stark, T. Lannister, A. Martell, P Baelish, B. Dondarrion 및 J. Mormont. Westeros의 과도한 노출 수준은 산발적 인 계절성 기후에 기여합니다. Nat. Proc. 아카. Sci. (2011) 3 : 142-149.

그리고 여기서 제목 만 추출하고 싶습니다. 내가 고려하고있는 접근 방식은 "이 문자열에서 텍스트를 가져 오지만 길이가 50 자 이상인 경우에만"이라는 스크립트를 작성하는 것입니다. 이렇게하면 "Stark, T"및 "Martell, P"와 같은 항목이 아닌 제목 만 반환됩니다. 지금까지 가지고있는 코드는 다음과 같습니다.

Sub TitleTest()
    Dim txt As String
    Dim Output As String
    Dim i As Integer
    Dim rng As Range
    Dim j As Integer
    Dim k As Integer

    j = 5
    Set rng = Range("A" & j) 'text is in cell A5
    txt = rng.Value 'txt is string
    i = 1

    While j <= 10 'there are five references between A5 and A10
    k = InStr(i, txt, ".") - InStr(i, txt, ". ") + 1 'k is supposed to be the length of the string returned, but I can't differenciate one "." from the other.

    Output = Mid(txt, InStr(i, txt, "."), k)
            If Len(Output) < 100 Then
                i = i + 1
            ElseIf Len(Output) > 10 Then
                Output = Mid(txt, InStr(i, txt, "."), InStr(i, txt, ". "))
                Range("B5") = Output
                j = j + 1
            End If
    Wend
End Sub

물론 "."두 개가 아니면 잘 작동 할 것입니다. 나는 완전한 정보를 얻으려고 노력했다. InStr같은 문자를 두 번 찾지 못하도록 함수 를 작성 하는 방법이 있습니까? 내가 잘못된 방식으로 진행하고 있습니까?

미리 감사드립니다.

편집 : 작동 할 수있는 또 다른 접근 방식 (가능한 경우)은 한 문자가 " any lower case letter." 일 수있는 경우 입니다. 및 ".". 이것이 가능할까요? 나는 이것이 어떻게 이루어질 수 있는지에 대한 예를 찾을 수 없습니다 ...

Vityata

여기 있습니다. 원하는대로 정확하게 작동합니다. 귀하의 코드로 판단하면 필요에 따라 매우 빠르게 조정할 수 있습니다.

Option Explicit

Sub ExtractTextSub()

    Debug.Print ExtractText("E. Stark, T. Lannister, A. Martell, P Baelish, B. Dondarrion, and J. Mormont. Increased levels of nudity across Westeros contributes to its sporadic seasonal climate. Nat. Proc. Aca. Sci. (2011) 3: 142-149.")

End Sub

Public Function ExtractText(str_text As String) As String

    Dim arr         As Variant
    Dim l_counter   As Long
    arr = Split(str_text, ".")

    For l_counter = LBound(arr) To UBound(arr)

        If Len(arr(l_counter)) > 50 Then
            ExtractText = arr(l_counter)
        End If

    Next l_counter

End Function

편집 : 5 표는 즉시 내 코드를 개선하도록 만들었습니다. :) 이것은 50자를 생각하지 않고 가장 긴 문자열을 반환합니다. 또한 오류 처리기 및 점에 대한 상수. 또한 추출 끝에 점을 추가합니다.

Option Explicit

Public Const STR_POINT = "."

Sub ExtractTextSub()

    Debug.Print ExtractText("E. Stark, T. Lannister, A. Martell, P Baelish, B. Dondarrion, and J. Mormont. Increased levels of nudity across Westeros contributes to its sporadic seasonal climate. Nat. Proc. Aca. Sci. (2011) 3: 142-149.")

End Sub

Public Function ExtractText(str_text As String) As String

    On Error GoTo ExtractText_Error

    Dim arr             As Variant
    Dim l_counter       As Long
    Dim str_longest     As String

    arr = Split(str_text, STR_POINT)

    For l_counter = LBound(arr) To UBound(arr)

        If Len(arr(l_counter)) > Len(ExtractText) Then
            ExtractText = arr(l_counter)
        End If

    Next l_counter

ExtractText = ExtractText & STR_POINT

On Error GoTo 0
Exit Function

ExtractText_Error:

MsgBox "Error " & Err.Number & Err.Description 

End Function

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

AppleScript를 사용하여 텍스트 문서에서 두 문자열 사이의 문자열 추출

분류에서Dev

Python에서 Regex를 사용하여 두 문자열 사이에 하위 문자열이있는 경우 두 문자열 사이의 텍스트 추출

분류에서Dev

거대한 순서의 텍스트 파일에서 두 문자열 사이의 텍스트 추출

분류에서Dev

로그 파일에서 두 문자열 사이의 텍스트를 어떻게 추출 할 수 있습니까?

분류에서Dev

PHP 문자열에서 동일한 두 문자 사이의 텍스트 찾기

분류에서Dev

JavaScript : Regex를 사용하여 두 개의 선택적 문자 사이에서 문자열 부분 추출

분류에서Dev

Java Matcher 클래스를 사용하여 문자열에서 두 개의 숫자 추출

분류에서Dev

Excel에서 두 문자 사이의 텍스트 추출

분류에서Dev

VBA를 사용하여 URL의 텍스트 파일에서 문자열 읽기

분류에서Dev

Python 3.0에서 두 개의 텍스트 파일을 동시에 읽고 필요한 문자열 추출

분류에서Dev

서로 다른 줄에있는 두 문자열 사이의 텍스트 추출

분류에서Dev

Regex를 사용하여 두 문자열 사이의 문자열 추출

분류에서Dev

파이썬을 사용하여 시작과 끝으로 두 개의 식별자를 통해 거대한 텍스트 파일에서 줄 추출

분류에서Dev

R의 Regex를 사용하여 텍스트 본문에서 원본 이메일 발신자 추출

분류에서Dev

두 문자열 / 제목 사이의 텍스트 추출

분류에서Dev

두 문자 사이의 텍스트 추출 (여러 줄 입력)

분류에서Dev

텍스트 문자열에서 숫자를 추출하여 데이터 프레임의 별도 열로 이동

분류에서Dev

파일에서 두 문자열 사이의 URL 추출

분류에서Dev

여러 줄에 걸쳐 일치하는 문자열 사이의 텍스트를 추출하는 정규식?

분류에서Dev

awk를 사용하여 두 사례 사이의 문자열 추출

분류에서Dev

Ansible을 사용하여 텍스트 줄에서 두 문자열 추출

분류에서Dev

awk를 사용하여 문자열의 두 부분 추출

분류에서Dev

Python : 핵심 문구를 사용하여 문자열에서 텍스트 추출

분류에서Dev

Python : 핵심 문구를 사용하여 문자열에서 텍스트 추출

분류에서Dev

sed를 사용하여 한 줄에서 한 번에 두 개의 텍스트를 추출합니다.

분류에서Dev

문자열에서 2 개의 숫자를 추출하여 텍스트 상자를 채 웁니다. vb.net

분류에서Dev

Python regex-두 단어 사이의 텍스트를 문자열로 캡처 한 다음 목록에 추가

분류에서Dev

두 문자열 사이에 하위 문자열이있는 경우 두 문자열 사이의 텍스트 추출

분류에서Dev

문자열에서 두 문자 사이의 부분 문자열 추출 C #

Related 관련 기사

  1. 1

    AppleScript를 사용하여 텍스트 문서에서 두 문자열 사이의 문자열 추출

  2. 2

    Python에서 Regex를 사용하여 두 문자열 사이에 하위 문자열이있는 경우 두 문자열 사이의 텍스트 추출

  3. 3

    거대한 순서의 텍스트 파일에서 두 문자열 사이의 텍스트 추출

  4. 4

    로그 파일에서 두 문자열 사이의 텍스트를 어떻게 추출 할 수 있습니까?

  5. 5

    PHP 문자열에서 동일한 두 문자 사이의 텍스트 찾기

  6. 6

    JavaScript : Regex를 사용하여 두 개의 선택적 문자 사이에서 문자열 부분 추출

  7. 7

    Java Matcher 클래스를 사용하여 문자열에서 두 개의 숫자 추출

  8. 8

    Excel에서 두 문자 사이의 텍스트 추출

  9. 9

    VBA를 사용하여 URL의 텍스트 파일에서 문자열 읽기

  10. 10

    Python 3.0에서 두 개의 텍스트 파일을 동시에 읽고 필요한 문자열 추출

  11. 11

    서로 다른 줄에있는 두 문자열 사이의 텍스트 추출

  12. 12

    Regex를 사용하여 두 문자열 사이의 문자열 추출

  13. 13

    파이썬을 사용하여 시작과 끝으로 두 개의 식별자를 통해 거대한 텍스트 파일에서 줄 추출

  14. 14

    R의 Regex를 사용하여 텍스트 본문에서 원본 이메일 발신자 추출

  15. 15

    두 문자열 / 제목 사이의 텍스트 추출

  16. 16

    두 문자 사이의 텍스트 추출 (여러 줄 입력)

  17. 17

    텍스트 문자열에서 숫자를 추출하여 데이터 프레임의 별도 열로 이동

  18. 18

    파일에서 두 문자열 사이의 URL 추출

  19. 19

    여러 줄에 걸쳐 일치하는 문자열 사이의 텍스트를 추출하는 정규식?

  20. 20

    awk를 사용하여 두 사례 사이의 문자열 추출

  21. 21

    Ansible을 사용하여 텍스트 줄에서 두 문자열 추출

  22. 22

    awk를 사용하여 문자열의 두 부분 추출

  23. 23

    Python : 핵심 문구를 사용하여 문자열에서 텍스트 추출

  24. 24

    Python : 핵심 문구를 사용하여 문자열에서 텍스트 추출

  25. 25

    sed를 사용하여 한 줄에서 한 번에 두 개의 텍스트를 추출합니다.

  26. 26

    문자열에서 2 개의 숫자를 추출하여 텍스트 상자를 채 웁니다. vb.net

  27. 27

    Python regex-두 단어 사이의 텍스트를 문자열로 캡처 한 다음 목록에 추가

  28. 28

    두 문자열 사이에 하위 문자열이있는 경우 두 문자열 사이의 텍스트 추출

  29. 29

    문자열에서 두 문자 사이의 부분 문자열 추출 C #

뜨겁다태그

보관