첫 번째 줄이 제목 줄이라고 가정하고 두 번째 줄부터 시작하세요
하위 병합()
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
끝나면
다음
끝 서브
하위 워크시트 번호 통계()
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
끝 서브
워크시트 통계라는 워크시트가 생성되고 첫 번째 행에 워크시트 수가 표시됩니다
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!