VBA : .Find 메서드를 사용하여 첫 번째 및 두 번째 값 발생 찾기

코코 코코

열 머리글 이 문자열 뒤에 임의의 숫자가 있는 이 있습니다. 첫 번째와 두 번째 발생을 특정 문자열로 변경하고 싶습니다. 열은 임의의 순서 일 수 있지만 더 낮은 숫자 (또는 숫자 없음)는 첫 번째 발생으로 간주됩니다.

입력:

이름 date2 place33 이름 2 date14 place666

산출:

Transfer.name Transfer.date Transfer.place Sender.name Sender.date Sender.place

부동산 SearchOrder=xlnext이 첫 번째 값을 식별하는 데 도움이 되기를 바랐 지만 틀 렸습니다.

규칙은 열이 누락 된 경우에도 왼쪽에서 첫 번째 항목이로 플래그 지정된다는 것 Transfer.입니다.

와일드 카드 LookAt:=xlPart와 함께 옵션 사용하여 다양한 방법을 시도했지만 *아무 소용이 없었습니다.

내가 사용한 코드는 다음과 같습니다.

Dim sht As Worksheet
Dim fndList As Variant
Dim rplcList As Variant
Dim x As Long

fndList = Array("name", "date", "place", "name*", "date*", "place*")
rplcList = Array("Transfer.name", "Transfer.date", "Transfer.place",_
 "Sender.name", "Sender.date", "Sender.place")

'Loop through each item in Array lists
For x = LBound(fndList) To UBound(fndList)
On Error GoTo NextList:
        Worksheets("Header").Rows(1).Replace What:=fndList(x), Replacement:=rplcList(x), _
          LookAt:=xlWhole, SearchOrder:=xlNext, MatchCase:=False, _
          SearchFormat:=False, ReplaceFormat:=False
'LookAt:= xlPart
Next x
팀 윌리엄스

다음은 검색어에 따라 그룹화 된 관심있는 모든 헤더를 수집하여 시작하는 한 가지 접근 방식입니다.

그런 다음 숫자 접미사 (있는 경우)에 따라 각 용어의 셀을 정렬하고 정렬 된 컬렉션의 첫 번째 항목에 레이블을 다시 지정합니다.

Sub RelabelHeaders()

    Dim fndList As Variant
    Dim c As Range, e
    Dim dict, k, arr, tmp, col As Collection
    Set dict = CreateObject("scripting.dictionary")
    
    fndList = Array("name", "date", "place")
    
    'collect all candidate headers: one collection per search term
    For Each c In Worksheets("Header").Rows(1).SpecialCells(xlCellTypeConstants)
        For Each e In fndList
            'exact match or match+digit[s] (assumes one digit is followed by nothing or by other digits..)
            If c.Value = e Or c.Value Like e & "#*" Then
                If Not dict.exists(e) Then Set dict(e) = New Collection
                dict(e).Add c
                Exit For
            End If
        Next e
    Next c
    
    'loop keys, sort collection and relabel
    For Each k In dict
        Set col = dict(k)
        SortCells col, k
        col(1).Value = "Transfer." & k
        If col.Count > 1 Then col(2).Value = "Sender." & k
    Next k
End Sub

'sort a collection of cells ascending, according to the numeric part(if any)
' remaining after removing `root` from the value
Sub SortCells(col As Collection, root)
    Dim num As Long, i As Long, j As Long
    Dim Temp As Range, v1, v2
    num = col.Count
    For i = 1 To num - 1
        For j = i + 1 To num
            'compare based on numeric part only
            v1 = NumberOnly(col(i).Value, root)
            v2 = NumberOnly(col(j).Value, root)
            If v1 > v2 Then
                Set Temp = col(j)
                col.Remove j
                col.Add Temp, , i
            End If
        Next j
    Next i
End Sub

'extract number from cell value (return 0 if no numerix suffix)
Function NumberOnly(v, root)
    v = Replace(v, root, "")
    If Len(v) = 0 Then v = 0
    NumberOnly = CLng(v)
End Function


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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Crystal Reports-linkedTable 값의 첫 번째, 두 번째 및 세 번째 발생 가져 오기

분류에서Dev

재귀를 사용하여 첫 번째 문자열에서 두 번째 문자열의 첫 번째 발생 인덱스 가져 오기

분류에서Dev

재귀를 사용하여 첫 번째 문자열에서 두 번째 문자열의 첫 번째 발생 인덱스 가져 오기

분류에서Dev

(값) lisp에서 첫 번째 및 두 번째 결과 가져 오기

분류에서Dev

첫 번째 및 두 번째 행에서 값을 선택하는 방법

분류에서Dev

다른 열에서 첫 번째, 두 번째 및 세 번째 값을 선택하는 방법-Ms Access

분류에서Dev

R에서 일치 함수를 사용하여 '첫 번째 발생'찾기

분류에서Dev

jQuery를 사용하여 첫 번째 <select> 값을 기반으로 두 번째 <select> 조작

분류에서Dev

첫 번째 테이블에서 일치하는 값에 대해 두 번째 및 세 번째 테이블에서 값 가져 오기

분류에서Dev

두 번째 필드에서 차이 찾기, 첫 번째 필드를 사용하여보고 (awk)

분류에서Dev

조건부 서식을 위해 열에서 첫 번째, 두 번째, 세 번째 및 네 번째로 큰 셀을 찾는 VBA

분류에서Dev

첫 번째 열의 인덱스 값에 해당하는 두 번째 열에서 가장 작은 숫자 찾기

분류에서Dev

두 값 중 하나와 같지 않은 첫 번째 값 찾기

분류에서Dev

단어에서 사용자 정의 기호의 첫 번째 및 두 번째 부분을 취하는 방법

분류에서Dev

첫 번째 열 내용을 기반으로 필드를 분리하고 두 번째 열에서 일치하고 awk의 네 번째 열 값에서 빼기

분류에서Dev

기본값이 첫 번째 및 두 번째 매개 변수 인 키워드 인수

분류에서Dev

값 배열에서 첫 번째와 두 번째를 찾으십니까?

분류에서Dev

첫 번째 열에서 유사한 값을 그룹화하고 SQL의 구분 기호를 사용하여 두 번째 열 값을 조인합니다.

분류에서Dev

VBA를 사용하여 두 번째 통합 문서에서 데이터 찾기

분류에서Dev

Php, 첫 번째 키와 두 번째 값을 사용하여 두 배열 결합

분류에서Dev

지도의 첫 번째와 두 번째 값을 벡터 쌍의 첫 번째와 두 번째 값에 업로드

분류에서Dev

첫 번째 자동 완성을 사용하여 두 번째 자동 완성의 값 지우기

분류에서Dev

Excel : 첫 번째 열 비교에서 일치하는 값을 찾은 다음 두 번째 열 비교

분류에서Dev

첫 번째 발생을 계산하고 열에서 값 지정

분류에서Dev

두 번째 SQL의 이름을 사용하여 첫 번째 테이블에서 값을 삭제하는 방법

분류에서Dev

IEnumerable 메서드를 사용하여 목록의 첫 번째 및 두 번째 요소, 두 번째 및 세 번째 등의 작업을 수행하여 결과를 새 IEnumerable로 반환합니다.

분류에서Dev

첫 번째 창 코드에서 생성 된 두 번째 창 닫기

분류에서Dev

RE를 사용하여 문장에서 문자 나 단어 또는 공백의 첫 번째 발생 찾기

분류에서Dev

고유 필터링 (VBA)을 사용할 때 첫 번째 값이 두 번

Related 관련 기사

  1. 1

    Crystal Reports-linkedTable 값의 첫 번째, 두 번째 및 세 번째 발생 가져 오기

  2. 2

    재귀를 사용하여 첫 번째 문자열에서 두 번째 문자열의 첫 번째 발생 인덱스 가져 오기

  3. 3

    재귀를 사용하여 첫 번째 문자열에서 두 번째 문자열의 첫 번째 발생 인덱스 가져 오기

  4. 4

    (값) lisp에서 첫 번째 및 두 번째 결과 가져 오기

  5. 5

    첫 번째 및 두 번째 행에서 값을 선택하는 방법

  6. 6

    다른 열에서 첫 번째, 두 번째 및 세 번째 값을 선택하는 방법-Ms Access

  7. 7

    R에서 일치 함수를 사용하여 '첫 번째 발생'찾기

  8. 8

    jQuery를 사용하여 첫 번째 <select> 값을 기반으로 두 번째 <select> 조작

  9. 9

    첫 번째 테이블에서 일치하는 값에 대해 두 번째 및 세 번째 테이블에서 값 가져 오기

  10. 10

    두 번째 필드에서 차이 찾기, 첫 번째 필드를 사용하여보고 (awk)

  11. 11

    조건부 서식을 위해 열에서 첫 번째, 두 번째, 세 번째 및 네 번째로 큰 셀을 찾는 VBA

  12. 12

    첫 번째 열의 인덱스 값에 해당하는 두 번째 열에서 가장 작은 숫자 찾기

  13. 13

    두 값 중 하나와 같지 않은 첫 번째 값 찾기

  14. 14

    단어에서 사용자 정의 기호의 첫 번째 및 두 번째 부분을 취하는 방법

  15. 15

    첫 번째 열 내용을 기반으로 필드를 분리하고 두 번째 열에서 일치하고 awk의 네 번째 열 값에서 빼기

  16. 16

    기본값이 첫 번째 및 두 번째 매개 변수 인 키워드 인수

  17. 17

    값 배열에서 첫 번째와 두 번째를 찾으십니까?

  18. 18

    첫 번째 열에서 유사한 값을 그룹화하고 SQL의 구분 기호를 사용하여 두 번째 열 값을 조인합니다.

  19. 19

    VBA를 사용하여 두 번째 통합 문서에서 데이터 찾기

  20. 20

    Php, 첫 번째 키와 두 번째 값을 사용하여 두 배열 결합

  21. 21

    지도의 첫 번째와 두 번째 값을 벡터 쌍의 첫 번째와 두 번째 값에 업로드

  22. 22

    첫 번째 자동 완성을 사용하여 두 번째 자동 완성의 값 지우기

  23. 23

    Excel : 첫 번째 열 비교에서 일치하는 값을 찾은 다음 두 번째 열 비교

  24. 24

    첫 번째 발생을 계산하고 열에서 값 지정

  25. 25

    두 번째 SQL의 이름을 사용하여 첫 번째 테이블에서 값을 삭제하는 방법

  26. 26

    IEnumerable 메서드를 사용하여 목록의 첫 번째 및 두 번째 요소, 두 번째 및 세 번째 등의 작업을 수행하여 결과를 새 IEnumerable로 반환합니다.

  27. 27

    첫 번째 창 코드에서 생성 된 두 번째 창 닫기

  28. 28

    RE를 사용하여 문장에서 문자 나 단어 또는 공백의 첫 번째 발생 찾기

  29. 29

    고유 필터링 (VBA)을 사용할 때 첫 번째 값이 두 번

뜨겁다태그

보관