범위 내에서 텍스트 문자열을 찾고 일치하는 행에서 데이터를 반환하는 매크로 만들기

조셉 린

좋은 아침입니다. 저는 데이터베이스라는 시트에서 P2 : CP5000 범위의 Committees라는 셀 A2 시트에서 특정 텍스트를 찾고 다음을 포함하는 모든 행의 동일한 행에서 A : O 열의 데이터를 반환하는 매크로를 구축하고 있습니다. 이 텍스트 문자열을 보고서라는 시트의 F2 셀에서 시작하여 인쇄합니다. 다음은 몇 가지 제안을 기반으로 한 작업입니다. 그러나 예상 값을 반환하지 않고 데이터베이스의 A 열에서 보고서의 F : T로 데이터를 복사합니다. 또한 r1 범위의 마지막 행 이후에 멈추지 않기 때문에 루프가 작동하지 않는다고 생각합니다.

Sub Macro1()

Dim r1 As Range, r2 As Range, r3 As Range
Dim rw1 As Long
Dim tmpRow As Long

tmpRow = 2
Set r2 = Sheets("Committees").Range("A2")
Set r1 = Sheets("Database").Range("P2:CO5000")
Set r3 = ThisWorkbook.Sheets("Reports").Range("F2:T2")

rw1 = 0
rw1 = r1.Find(What:=r2.Value, After:=r1(1)).Row

Do While rw1 <> 0
r3.Value = Sheets("Database").Range("A" & rw1 & ":O" & rw1).Value
tmpRow = tmpRow + 1
Set r3 = ThisWorkbook.Sheets("Reports").Range("F" & tmpRow & ":T" & tmpRow)
rw1 = 0
rw1 = r1.FindNext().Row
Loop
End Sub

미리 감사드립니다!

태양

최종 편집 :

특정 셀이 이미 발견되었는지 확인하는 것을 잊었습니다 (이제 FirstAddress 사용). 무한 루프는 동일한 항목을 반복해서 찾는 코드 때문이었습니다.

다음 코드를 테스트했으며 저에게 효과적입니다.

Sub joseph()

Dim awb As Workbook
Dim cm, db, rp As Worksheet 'committees, database, reports

Dim tmpRng As Range
Dim firstAddress As String
Dim tmpRow As Integer

Dim r As Integer

Dim searchValue As String


    Set awb = ThisWorkbook

    With awb
        Set cm = .Worksheets("Committees")
        Set db = .Worksheets("Database")
        Set rp = .Worksheets("Reports")
    End With

    searchValue = cm.Range("A2").Value

    tmpRow = 0
    r = 2

    With db

        Set tmpRng = .Range("P2:CP5000").Find(searchValue, _
            LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext, MatchCase:=False)

        If Not tmpRng Is Nothing Then

            firstAddress = tmpRng.Address

            Do
                tmpRow = tmpRng.Row
                rp.Range("F" & r & ":T" & r).Value = .Range("A" & tmpRow & ":O" & tmpRow).Value
                r = r + 1
                Set tmpRng = .Range("P2:CP5000").FindNext(tmpRng)
            Loop While Not tmpRng Is Nothing And tmpRng.Address <> firstAddress

        End If

    End With

End Sub

초기 응답 및 편집 :

이 줄을 바꿔보세요

Set rw1 = .FindNext(rw1)

...에

rw1 = r1.FindNext().Row

rw1은 범위가 아니므로 유형이 일치하지 않습니다. 이것이 작동하는지 알려주십시오.

편집 :이 줄도 변경하십시오.

If Not rw1 Is Nothing Then

...에

if rw1 <> 0 then

이 줄을 추가하십시오

rw1 = 0

이 줄 앞에 :

rw1 = r1.Find(What:=r2.Value, After:=r1(1)).Row

Edit2 : for 루프 및 r3 업데이트에 대해 텍스트 문자열이 여러 번 존재하는 경우 for 루프를 유지해야하며 행 변수를 선언하여 r3 범위를 업데이트 할 수 있습니다.

Dim tmpRow = 2 as integer

그런 다음 for 루프 안에 전에 작성하십시오. rw1 = 0

tmpRow = tmpRow + 1
set r3 = thisWorkbook.Sheets("Reports").Range("F" & tmprow & ":T" & tmprow)

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

SQL Server에서 끝점 및 일치하지 않는 데이터를 기반으로 시퀀스 범위 찾기

분류에서Dev

주 날짜 범위 문자열에서 날짜를 추출하고 다음 날짜 범위를 인쇄하기 위해 7 일을 추가하는 매크로

분류에서Dev

목록에서 문자열과 일치하는 행을 찾기 위해 pandas df를 동적으로 마스킹

분류에서Dev

텍스트 문자열에 대해 텍스트 범위를 확인하고 "yes"또는 "no"를 반환합니다.

분류에서Dev

workbook_sheetchange 이벤트를 사용하여 행 범위 내에서 숫자 값을 음수로 만들기

분류에서Dev

텍스트 일치를 위해 jquery의 열을 일치시키고 일치하는 행에서 다른 열을 반환하는 방법

분류에서Dev

문자열이 발생하는 위치에서 텍스트 파일을 텍스트 파일로 일괄 분할

분류에서Dev

몇 개의 셀에서 텍스트를 분리하고 여러 데이터 셀을 만들기위한 Excel VBA

분류에서Dev

자바 스크립트에서 줄 바꿈 문자를 제거하고 데이터를 한 줄로 만들기

분류에서Dev

텍스트 파일을 반복하고 계층 적으로 관련된 텍스트 파일의 하위 문자열에 추가 할 문자열 찾기

분류에서Dev

한 번에 데이터를 전치하고 서식을 지정할 수있는 vba 스크립트 또는 매크로를 만들어야합니다.

분류에서Dev

파일 이름을 기반으로 하위 디렉터리를 만들고 일치하는 파일을 이동하는 스크립트를 만듭니다.

분류에서Dev

내 XML에서 텍스트의 특정 하위 문자열을 찾고 XSLT를 사용하여이 텍스트를 선택하는 방법

분류에서Dev

데이터베이스에서 일치하는 값으로 배열 만들기

분류에서Dev

데이터를 복사하고 다른 통합 문서에 붙여 넣는 매크로 만들기

분류에서Dev

C # 문자열에서 위 첨자 문자를 일반 텍스트로 변환하는 방법

분류에서Dev

파이썬으로 여러 XML 파일을 구문 분석하고 각 파일에서 특정 텍스트를 찾고 출력을 표로 만들기

분류에서Dev

셀 범위에 텍스트가있는 경우 A 열과 일치하고 Y / N을 반환합니다.

분류에서Dev

범위 내에서 일치하는 모든 값을 필터링하는 텍스트 상자

분류에서Dev

범위에서 0이있는 셀을 찾고 다음 셀 매크로 삭제

분류에서Dev

내 프로그램의 코드에서 텍스트 파일을 만들고 작성하는 것, 텍스트 파일을 만들고 데이터를 별도로 쓰는 것의 이점이 있습니까?

분류에서Dev

Google 스프레드 시트의 열에서 둘 이상의 텍스트 값을 기반으로 값을 찾고 반환하는 방법

분류에서Dev

여러 구분자를 기반으로 팬더 데이터 프레임의 열에서 텍스트를 분할하고 각각에 대해 새 행을 만들고 싶습니다.

분류에서Dev

열 범위에서 특정 값을 찾고 인접한 일치하는 행을 열로 전치

분류에서Dev

Python : 열 범위 내에서 텍스트를 포함하는 행 수 계산

분류에서Dev

bash- 파일에서 문자열을 검색하고 일치하는 모든 위치를 반환

분류에서Dev

grep을 사용하여 -r 스위치없이 상위 폴더의 하위 폴더에있는 파일에서 텍스트 문자열을 찾는 방법

분류에서Dev

범위 목록에서 숫자를 찾고 색인을 반환하는 방법

분류에서Dev

일치하는 행 데이터를 기반으로 pandas에서 새 데이터 프레임 만들기

Related 관련 기사

  1. 1

    SQL Server에서 끝점 및 일치하지 않는 데이터를 기반으로 시퀀스 범위 찾기

  2. 2

    주 날짜 범위 문자열에서 날짜를 추출하고 다음 날짜 범위를 인쇄하기 위해 7 일을 추가하는 매크로

  3. 3

    목록에서 문자열과 일치하는 행을 찾기 위해 pandas df를 동적으로 마스킹

  4. 4

    텍스트 문자열에 대해 텍스트 범위를 확인하고 "yes"또는 "no"를 반환합니다.

  5. 5

    workbook_sheetchange 이벤트를 사용하여 행 범위 내에서 숫자 값을 음수로 만들기

  6. 6

    텍스트 일치를 위해 jquery의 열을 일치시키고 일치하는 행에서 다른 열을 반환하는 방법

  7. 7

    문자열이 발생하는 위치에서 텍스트 파일을 텍스트 파일로 일괄 분할

  8. 8

    몇 개의 셀에서 텍스트를 분리하고 여러 데이터 셀을 만들기위한 Excel VBA

  9. 9

    자바 스크립트에서 줄 바꿈 문자를 제거하고 데이터를 한 줄로 만들기

  10. 10

    텍스트 파일을 반복하고 계층 적으로 관련된 텍스트 파일의 하위 문자열에 추가 할 문자열 찾기

  11. 11

    한 번에 데이터를 전치하고 서식을 지정할 수있는 vba 스크립트 또는 매크로를 만들어야합니다.

  12. 12

    파일 이름을 기반으로 하위 디렉터리를 만들고 일치하는 파일을 이동하는 스크립트를 만듭니다.

  13. 13

    내 XML에서 텍스트의 특정 하위 문자열을 찾고 XSLT를 사용하여이 텍스트를 선택하는 방법

  14. 14

    데이터베이스에서 일치하는 값으로 배열 만들기

  15. 15

    데이터를 복사하고 다른 통합 문서에 붙여 넣는 매크로 만들기

  16. 16

    C # 문자열에서 위 첨자 문자를 일반 텍스트로 변환하는 방법

  17. 17

    파이썬으로 여러 XML 파일을 구문 분석하고 각 파일에서 특정 텍스트를 찾고 출력을 표로 만들기

  18. 18

    셀 범위에 텍스트가있는 경우 A 열과 일치하고 Y / N을 반환합니다.

  19. 19

    범위 내에서 일치하는 모든 값을 필터링하는 텍스트 상자

  20. 20

    범위에서 0이있는 셀을 찾고 다음 셀 매크로 삭제

  21. 21

    내 프로그램의 코드에서 텍스트 파일을 만들고 작성하는 것, 텍스트 파일을 만들고 데이터를 별도로 쓰는 것의 이점이 있습니까?

  22. 22

    Google 스프레드 시트의 열에서 둘 이상의 텍스트 값을 기반으로 값을 찾고 반환하는 방법

  23. 23

    여러 구분자를 기반으로 팬더 데이터 프레임의 열에서 텍스트를 분할하고 각각에 대해 새 행을 만들고 싶습니다.

  24. 24

    열 범위에서 특정 값을 찾고 인접한 일치하는 행을 열로 전치

  25. 25

    Python : 열 범위 내에서 텍스트를 포함하는 행 수 계산

  26. 26

    bash- 파일에서 문자열을 검색하고 일치하는 모든 위치를 반환

  27. 27

    grep을 사용하여 -r 스위치없이 상위 폴더의 하위 폴더에있는 파일에서 텍스트 문자열을 찾는 방법

  28. 28

    범위 목록에서 숫자를 찾고 색인을 반환하는 방법

  29. 29

    일치하는 행 데이터를 기반으로 pandas에서 새 데이터 프레임 만들기

뜨겁다태그

보관