VBA를 사용하여 와일드 카드로 문자열을 구문 분석하고 분할합니까?

Gualdhar

영숫자의 항목 번호와 행에 다른 정보가 포함 된 시트가 있습니다. 때로는 유사한 항목이 하나의 행으로 결합되고 항목 번호의 차이가 (X / Y)로 표시되어 항목 번호의 해당 지점에서 사용할 문자를 선택합니다 (X 또는 Y뿐만 아니라 영숫자 일 수도 있음). 캐릭터). 즉, 이러한 항목은 다음과 같습니다.

AB (X / Y) CD123

내가 필요한 것은 ABXCD123과 ABYCD123의 두 항목 번호로 구분하는 방법입니다. 그런 다음 현재 행 아래에 행을 만들고 변경된 항목 번호로 현재 행을 복사해야하지만 그 부분은 쉽습니다. InStr을 사용하여 (X / Y) 플래그를 지정했지만 X 및 Y 문자를 꺼내 새 문자열을 만드는 방법을 모르겠습니다. 또한 와일드 카드가 InStr에서 작동하는지 여부도 모르며 RegEx에 너무 익숙하지 않습니다.

어떤 아이디어?

사용자 4039065

다음은 UDF²의 regex¹에 대한 간략한 소개입니다.

Function partNums(str As String, _
                  Optional num As Integer = 1)
    Dim tmp As String
    Static rgx As Object

    'with rgx as static, it only has to be created once; beneficial when filling a long column with this UDF
    If rgx Is Nothing Then
        Set rgx = CreateObject("VBScript.RegExp")
    End If
    partNums = vbNullString

    With rgx
        .Global = True
        .IgnoreCase = True
        .MultiLine = False
        .Pattern = "\([A-Z]{1}/[A-Z]{1}\)"
        If .Test(str) Then
            tmp = .Execute(str)(0)
            Select Case num
                Case 2
                    tmp = Mid(tmp, 4, 1)
                Case Else
                    tmp = Mid(tmp, 2, 1)
            End Select
            partNums = .Replace(str, tmp)
        End If
    End With
End Function

B2 : B3에서

=partNums(A2)
=partNums(A3,2)

            부품 번호

다음은 1 ~ 3 개의 문자를 처리하는 크게 복제 된 UDF입니다.

Function partNums(str As String, _
                  Optional num As Integer = 1)
    Dim tmp As String
    Static rgx As Object

    'with rgx as static, it only has to be created once; beneficial when filling a long column with this UDF
    If rgx Is Nothing Then
        Set rgx = CreateObject("VBScript.RegExp")
    End If
    partNums = vbNullString

    With rgx
        .Global = True
        .IgnoreCase = True
        .MultiLine = False
        .Pattern = "\([A-Z]{1,3}/[A-Z]{1,3}\)"
        If .Test(str) Then
            tmp = .Execute(str)(0)
            tmp = Split(Replace(Replace(tmp, Chr(40), vbNullString), Chr(41), vbNullString), Chr(47))(num - 1)
            partNums = .Replace(str, tmp)
        End If
    End With
End Function

            여기에 이미지 설명 입력


¹ 질문은 일반적으로 셀 내 및 루프 모두에서 Microsoft Excel에서 정규식 (Regex)을 사용하는 방법 의 솔루션으로 답변 할 수 있습니다 .

² 사용자 정의 함수 (일명 UDF)가 표준 모듈 코드 시트에 배치됩니다. Alt+를 누르고 F11VBE가 열리면 즉시 풀다운 메뉴를 사용하여 삽입 ► 모듈 ( Alt+ I, M)을 사용합니다. Book1-Module1 (Code) 와 같은 제목의 새 모듈 코드 시트에 함수 코드를 붙여 넣습니다 . Alt+는 Q워크 시트 (들)로 돌아갑니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

int를 사용하여 문자열을 구문 분석하고 배열로 float

분류에서Dev

키워드를 사용하여 문자열 구문 분석

분류에서Dev

루아를 사용하여 코드 구문을 구문 분석합니까?

분류에서Dev

문자열 메서드를 사용하여 문자열 구문 분석

분류에서Dev

문자열을 구문 분석하고 DataFrame에로드

분류에서Dev

GSON을 사용하여 혼합 유형 필드를 구문 분석합니까?

분류에서Dev

문자열을 구문 분석하고 결과를 3 개 필드에 삽입

분류에서Dev

두 개의 ImageView에 UIImagePickerController를 사용하고 업로드하여 구문 분석

분류에서Dev

jquery를 사용하여 파일을로드하고 태그를 구문 분석하는 방법

분류에서Dev

simplexml을 사용하여 xml 파일을 구문 분석하고 PHP를 사용하여 명명 된 키 (숫자 키가 아님)로 배열을 만듭니다.

분류에서Dev

문자열을 구문 분석하고 int 레일로 변환

분류에서Dev

구분 기호로 문자열을 구문 분석하고 맵에로드 하시겠습니까?

분류에서Dev

와일드 카드를 사용하여 문자열을 비교할 수 있습니까?

분류에서Dev

Regex를 사용하여 여러 텍스트 필드를 구문 분석하고 Pandas DataFrame으로 컴파일

분류에서Dev

Python argparse는 와일드 카드로 이미지를 구문 분석하지 않습니다.

분류에서Dev

Regex를 사용하여 문자열의 유효성을 검사하고 두 그룹으로 구문 분석

분류에서Dev

'찾기'로 대소 문자를 구분하지 않고 ( '*'와일드 카드 사용) 검색하는 방법은 무엇입니까?

분류에서Dev

jquery를 사용하여 문자열을 HTML로 구문 분석하는 방법

분류에서Dev

explode를 사용하여 XML 파일을 구문 분석하고 단일 배열로 출력 가져 오기

분류에서Dev

Microsoft Word 대소 문자를 구분하지 않고 와일드 카드로 찾기 및 바꾸기

분류에서Dev

awk를 사용하여 모든 CSV 필드를 구문 분석하고 수정합니다.

분류에서Dev

키 필드로 숫자를 사용하여 json 객체를 구문 분석합니까?

분류에서Dev

Powershell 및 Regex를 사용하여 고정 길이 필드 파일 구문 분석, 빈 캡처 그룹을 0으로 바꾸려면 어떻게합니까?

분류에서Dev

대체에 와일드 카드를 사용하여 파일의 모든 문자열을 바꿉니다.

분류에서Dev

sed를 사용하여 정규식과 일치하는 문자열을 와일드 카드로 바꾸기

분류에서Dev

dict의 dict를 구문 분석 할 때 중첩 된 dict에 액세스하는 데 사용할 수있는 와일드 카드 옵션이 있습니까?

분류에서Dev

htmlparser2를 사용하여 html 문자열을 json으로 구문 분석

분류에서Dev

NumberStyles를 사용하여 문자열을 두 배로 구문 분석

분류에서Dev

Scrapy를 사용하여 소스 코드의 두 가지 섹션을 구문 분석하고 결과를 결합하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    int를 사용하여 문자열을 구문 분석하고 배열로 float

  2. 2

    키워드를 사용하여 문자열 구문 분석

  3. 3

    루아를 사용하여 코드 구문을 구문 분석합니까?

  4. 4

    문자열 메서드를 사용하여 문자열 구문 분석

  5. 5

    문자열을 구문 분석하고 DataFrame에로드

  6. 6

    GSON을 사용하여 혼합 유형 필드를 구문 분석합니까?

  7. 7

    문자열을 구문 분석하고 결과를 3 개 필드에 삽입

  8. 8

    두 개의 ImageView에 UIImagePickerController를 사용하고 업로드하여 구문 분석

  9. 9

    jquery를 사용하여 파일을로드하고 태그를 구문 분석하는 방법

  10. 10

    simplexml을 사용하여 xml 파일을 구문 분석하고 PHP를 사용하여 명명 된 키 (숫자 키가 아님)로 배열을 만듭니다.

  11. 11

    문자열을 구문 분석하고 int 레일로 변환

  12. 12

    구분 기호로 문자열을 구문 분석하고 맵에로드 하시겠습니까?

  13. 13

    와일드 카드를 사용하여 문자열을 비교할 수 있습니까?

  14. 14

    Regex를 사용하여 여러 텍스트 필드를 구문 분석하고 Pandas DataFrame으로 컴파일

  15. 15

    Python argparse는 와일드 카드로 이미지를 구문 분석하지 않습니다.

  16. 16

    Regex를 사용하여 문자열의 유효성을 검사하고 두 그룹으로 구문 분석

  17. 17

    '찾기'로 대소 문자를 구분하지 않고 ( '*'와일드 카드 사용) 검색하는 방법은 무엇입니까?

  18. 18

    jquery를 사용하여 문자열을 HTML로 구문 분석하는 방법

  19. 19

    explode를 사용하여 XML 파일을 구문 분석하고 단일 배열로 출력 가져 오기

  20. 20

    Microsoft Word 대소 문자를 구분하지 않고 와일드 카드로 찾기 및 바꾸기

  21. 21

    awk를 사용하여 모든 CSV 필드를 구문 분석하고 수정합니다.

  22. 22

    키 필드로 숫자를 사용하여 json 객체를 구문 분석합니까?

  23. 23

    Powershell 및 Regex를 사용하여 고정 길이 필드 파일 구문 분석, 빈 캡처 그룹을 0으로 바꾸려면 어떻게합니까?

  24. 24

    대체에 와일드 카드를 사용하여 파일의 모든 문자열을 바꿉니다.

  25. 25

    sed를 사용하여 정규식과 일치하는 문자열을 와일드 카드로 바꾸기

  26. 26

    dict의 dict를 구문 분석 할 때 중첩 된 dict에 액세스하는 데 사용할 수있는 와일드 카드 옵션이 있습니까?

  27. 27

    htmlparser2를 사용하여 html 문자열을 json으로 구문 분석

  28. 28

    NumberStyles를 사용하여 문자열을 두 배로 구문 분석

  29. 29

    Scrapy를 사용하여 소스 코드의 두 가지 섹션을 구문 분석하고 결과를 결합하려면 어떻게해야합니까?

뜨겁다태그

보관