Excel - 행 복사 및 n 번 삽입

발행물

Excel에서 매크로를 만들려고합니다.

내 데이터는 다음과 같습니다.

열 1 열 2 열 3 열 4

데이터 1 데이터 1 이름 1; 이름 2; 이름 3 데이터 1

데이터 2 데이터 2 이름 1; 이름 2; 데이터 2

데이터 3 데이터 3 이름 1; 이름 2; 이름 3 데이터 3

3 열의 각 셀에는 세미콜론으로 구분 된 n 개의 이름이 들어 있습니다.

이러한 일을하는 매크로가 필요합니다.

1) 첫 x 째 행 다음에 n 개의 행을 작성하십시오. N은 열 3의 첫 번째 열에있는 셀의 이름 수입니다.

2) 아래 행의 이름을 구분하십시오. (Text to Columns와 유사)

3) 원래 행의 다른 셀 내용을 아래의 삽입 행에 복사하십시오.

4) 다음 행으로 진행하고 다시 한 번 해보십시오.

결과는 다음과 같아야합니다.

열 1 열 2 열 3 열 4

데이터 1 데이터 1 이름 1 데이터 1

데이터 1 데이터 1 이름 2 데이터 1

데이터 1 데이터 1 이름 3 데이터 1

데이터 2 데이터 2 이름 1 데이터 2

데이터 2 데이터 2 이름 2 데이터 2

데이터 3 데이터 3 이름 1 데이터 3

데이터 3 데이터 3 이름 2 데이터 3

데이터 3 데이터 3 이름 3 데이터 3

너 나 좀 도와 줄 수있어?

해결책

이 웹 페이지 //speedy.sh/ruRSQ/duffy.xlsm에서 "duffy.xlsm"파일을 다운로드하십시오.

주 데이터는 시트 1 (세미콜론 없음)에 있으며 그 결과는 sheet2에 있습니다.

매크로는 다음과 같이 반복됩니다.

 Sub test () Dim rrow1 As Range, rrow2 As 범위, crow2 As String, rcol As 범위 긴 j, Long, nname () As String Dim m 정수로, dest 범위로, ddata () 문자열로, n (1 - j - 1) k = 2 To j ddata (k - 2)에 대해 긴 Application.ScreenUpdating = False로 워크 시트 ( "sheet1")로 실행 취소 j = .Range ( "a1") 끝 (xlDown) .Row ReDim ddata 1) = .Cells (k, Columns.Count) .End (xlToLeft) .Value 'msgbox ddata (k - 1) rcol = Range (.Cells (k, "C"), .Cells (k, "c" ) nnname (n) = rcol (nl)에 대해 nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnamennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn (1, n) 'msgbox nname (n) 다음 n'msgbox rcol.Address 범위 (.Cells (k, "A"), .Cells (k, "B")) 워크 시트로 복사 ( "sheet2") dest.Offset (m - 1, 0)). PasteSpecial n = 0이면 PasteSpecial을 사용합니다. dest = .Cells (Rows.Count, "A"). End (xlUp) .Offset (1, 0) 'msgbox dest.Address Range 1 DestinationOffset (n-1, 0) .Offset (0, 2) = nname (n) .Cells (dest.Offset (n-1, 0) .Row, Columns.Count) .End (xlToLeft) .Offset (0, 1) = ddata (k-1) Nex t n End With Next k End Application.ScreenUpdating = True Application.CutCopyMode = False MsgBox "매크로 오버"End Sub Sub undo () 워크 시트 ( "sheet2") .Cells.Clear End Sub 

이 팁을 주신 venkat1926에게 감사드립니다.

이전 기사 다음 기사

톱 팁