> 소프트웨어 튜토리얼 > 사무용 소프트웨어 > Excel VBA 코드: 하위 행을 상위 행에 병합하면 결과는 상위 행 1과 해당 하위입니다.

Excel VBA 코드: 하위 행을 상위 행에 병합하면 결과는 상위 행 1과 해당 하위입니다.

WBOY
풀어 주다: 2024-01-20 08:15:05
앞으로
1093명이 탐색했습니다.

一段excel vba代码用于将子表行合并到父表结果:父行1若干

Excel VBA 코드는 하위 테이블 행을 상위 테이블에 병합하는 데 사용됩니다. 결과는 다음과 같습니다. 여러 상위 행 1

첫 번째 줄이 제목 줄이라고 가정하고 두 번째 줄부터 시작하세요

하위 병합()

Endcol1 = Sheet1.[iv1].End(xlToLeft).Column

endrow1 = Sheet1.Range("B65536").End(xlUp).Row

endcol2 = Sheet2.[iv1].End(xlToLeft).Column

endrow2 = Sheet2.Range("B65536").End(xlUp).Row

Dim A 범위

Dim BiaoYiID 범위 지정

Dim BiaoErID를 범위로

Dim MyRange1 범위로

Dim BiaoErH 범위로

딤 레이지는 오래도록

시트2.활성화

BiaoErID = Sheet2.Range(Cells(2, 2), Cells(endrow2, 2)) 설정

For i = 2 To endrow1

sxh = i + 리에지

리에지1 = 0

biaoerneirong = Sheet1.Range("B"& sxh).Text

세트 A = BiaoErID.Find(biaoerneirong, after:=BiaoErID.Cells(BiaoErID.Cells.Count), lookat:=xlWhole)

A가 아니라면 아무것도 아니다

biaoertopaddress = A.주소

Do

sxh1 = sxh + 거짓말1

BIAORADDRESS = A.주소(RowAbsolute:=False, ColumnAbsolute:=False)

biaoyiaddress = Sheet1.Range("B" & sxh1).Address(RowAbsolute:=False, ColumnAbsolute:=False)

시트1.선택

Sheet1.Range(biaoyiaaddress).Offset(1).Activate

ActiveCell.EntireRow.Insert

리에지 =리에지 + 1

lieji1 = 거짓말1 + 1

ii = 0의 경우 endcol2

ActiveCell.Offset(0, ii) = Sheet2.Range(BIAOERADDRESS).Offset(0, ii)

다음

세트 A = BiaoErID.FindNext(A)

A가 아닌 동안의 루프는 아무것도 아니며 A.Address biaoertopaddress

끝나면

다음

끝 서브

통합 문서의 워크시트 수를 계산하는 VBA 코드를 작성하는 방법

하위 워크시트 번호 통계()

If Sheets(1).Name "워크시트 개수 통계" Then

yn = MsgBox ("[워크시트 수량 통계] 워크시트가 존재하지 않습니다. [워크시트 수량 통계]를 생성하시겠습니까?", vbYesNo, "[워크시트 수량 통계] 워크시트를 생성하세요")

yn = vb라면예 그러면

Sheets.Add(Sheets(1)).Name = "시트 수량 통계"

끝나면

끝나면

시트("워크시트 수에 대한 통계").선택

범위("A1").선택

Cells(1, 1).Value = "워크시트 개수는"

Cells(1, 2).Value = Sheets.Count

끝 서브

워크시트 통계라는 워크시트가 생성되고 첫 번째 행에 워크시트 수가 표시됩니다

아래 Excel VBA 코드에 대한 의견을 전문가가 작성해 주시기 바랍니다. 감사합니다.

Public m& '공용 변수 m 정의

하위 lqxs()

Dim Arr, i&, Brr(1 To 27, 1 To 23), rq, nl '위의 변수를 정의하면, Brr은 27행 23열의 2차원 배열입니다

Sheet1.Activate '시트1을 현재 활성 시트로 만들기

[c5:z32].ClearContents 'C5~Z32 셀의 데이터를 지웁니다

Myr = Sheet2.[a65536].End(xlUp).row 'Myr 변수에 Sheet2의 A열 데이터가 있는 영역의 행 개수를 할당합니다

Arr = Sheet2.Range("a7:t" & Myr) 'A7열부터 T열까지의 영역 이름을 지정하고 Myr행을 Arr

로 지정합니다.

For i = 1 To UBound(Arr) 'Loop

rq = DateSerial(Left(Arr(i, 7), 4), Mid(Arr(i, 7), 5, 2), Right(Arr(i, 7), 2)) '시트2에 열 G를 배치합니다. 데이터가 다음과 같은 날짜 형식으로 변경됩니다. 2013/12/12

nl = DateDiff("yyyy", rq, Now) '시트2의 G열에 있는 데이터 날짜의 연도가 올해와 같은지 확인합니다. 동일하면 올해가 아니면 0을 반환합니다. 마찬가지로 1

을 반환합니다.

Call jd(Arr(i, 13)) 'Call jd() 함수

Brr(1, nl + 1) = Brr(1, nl + 1) + 1 '배열 Brr(1, nl + 1)의 값에 1을 더합니다

Brr(m, nl + 1) = Brr(m, nl + 1) + 1 '배열 Brr(1, nl + 1)의 값에 1을 더합니다

다음

[d5].Resize(27, 23) = Brr 'D5 셀에 배열의 값을 대입하고 오른쪽 26번째 행과 22번째 열로 이동

[c5].Formula = "=sum(rc[1]:rc[23])" 'C5 셀에 수식 추가, C5=D5+E5+F5++AB5

[c5].AutoFill [c5].Resize(27, 1) '형식 채우기 C5의 형식을 셀 C31에 채웁니다

[d6].Formula = "=sum(r[1]c:r[4]c)" 'D6 셀에 수식 추가, D6=D7+D8+D9+D10

[d6].AutoFill [d6].Resize(1, 23) '형식 채우기, D6 형식을 셀 AB31에 채웁니다

끝 서브

위 내용은 Excel VBA 코드: 하위 행을 상위 행에 병합하면 결과는 상위 행 1과 해당 하위입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:docexcel.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿