2013-01-14 2 views
0

VBA를 처음 사용했습니다. 나는 매일 사용하는 시트에서 복사 기능을 자동화하려고합니다.셀 값에 따라 데이터를 새 시트에 여러 번 복사하는 VBA 코드

내가하고 싶은 일은 이름과 ID를 B 열과 C 열의 다음 시트로 표시하는 횟수와 ID 번호를 복사하는 것입니다. 카운트가 0이면 카운터는 다음 행으로 이동합니다. 특정 행의 이름과 ID.

Name ID  Count 
Dave dg124s 8 
Robert rc5675 10 
Mary mg987 0 
John jh785 6 
June fg71d 22

도전

  1. 주어진 시간을 초과 할 수있는 데이터를 포함하는 행의 수이다. (여기서는 데이터의 6 개 행이 있지만 40 개까지 증가 할 수있다).

  2. 복사 바닥 대부분의 행에서 시작하여 상단으로 이동합니다. 붙여 넣기, 그것은 다음 시트의 최상위 행에서 시작해야하지만

  3. 을 (이 경우 행 6에서 시작) (필드 다음 장에서 동일하게 유지)

희망 나는 그것을 분명히 설명했다. 나는 누군가가 이것에 관해 나를 도울 수 있으면 나는 의무가있을 것이다.

감사합니다.

데이브.

+0

? 우리는 무엇을 시도했는지 그리고 어디에 갇혀 있는지 보여 줄 수 있습니까? –

답변

0

이 시도 -

[EDITED]을

우리는 당신이 VBA를 처음하지만 당신은 아무것도 시도 이해
Sub CopyNames() 

Dim rngCopy As Range, rngTemp As Range, rngTarget As Range 
Dim intMultiple As Integer, i As Integer, intRow As Integer 

Set rngCopy = Sheet1.Range("A2", Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp)) 'Set range including names 
Set rngTarget = Sheet2.Cells(Sheet2.Rows.Count, 2).End(xlUp).Offset(1, 0) 'Set target range to next available row in Sheet2 

For intRow = rngCopy.Rows.Count To 1 Step -1 
    Set rngTemp = rngCopy.Cells(intRow) 
    intMultiple = rngTemp.Offset(0, 2) 'Find how many times to copy the name 
     For i = 1 To intMultiple 
      rngTarget.Value = rngTemp.Value 'Copy name 
      rngTarget.Next.Value = rngTemp.Next.Value 'Copy ID 
      Set rngTarget = rngTarget.Offset(1, 0) 'Move target range to next row 
     Next 
Next 

End Sub 
+0

그냥 코드를 확인하고 작동합니다. 단, 맨 아래 줄을 먼저 복사해야합니다. 그것은 열 A와 B에 붙여 넣었습니다. 나는 B와 C에서 그것을하고 싶습니다. rngTarget = Sheet2.Cells (Sheet2.Rows.Count, 1) .End (xlUp) .Offset (1, 0) .... ................. 전에 (sheet2.Rows ....) 붙여 넣기 시작해야하는 셀 값을 지정하면 작동합니까? ...... .. 다시 한 번 감사드립니다! – user1976929

+0

OK - 첫 번째 스프레드 시트에서 순서를 뒤집어 최상위 행이 먼저 오도록 할 수 있습니까? 그렇지 않은 경우 'For Each rngTemp'루프를 변경하여 범위를 후퇴해야합니다. 나는 대답을 업데이트 할 것이다. – MattCrum

+0

OK 주문을 취소하도록 편집했습니다. 그만 해봐. – MattCrum

관련 문제