2013-10-29 2 views
1

저는 VBA를 처음 사용하고 Excel에서이를 능숙하게하려고합니다 :Excel 매크로 행을 통과하여 다른 시트로 복사

값이있는 행이있는 sheet1이 있습니다. 먼저 데이터의 첫 번째 행을 다른 시트 (Sheet2)로 복사하고 미리 정의 된 셀 (예 : 셀 A1의 값이 B3으로 변경됨)에 복사하는 버튼을 만들었습니다. 그런 다음 PDF로 저장하려고합니다.

이제 코드를 좀 더 다이나믹하게 만들고 Sheet1의 각 행에 대해 이렇게하십시오. 따라서 A1-D1의 모든 값은 sheet2로 복사되고 pdf를 만들고 다음 행 (A2-D2)은 2로 만들고 pdf 등을 만듭니다.

어떻게 해결할 수 있습니까? 하나의 행에 대해 잘 작동

내 코드 :

Private Sub CommandButton1_Click() 

'Get name 
    Worksheets("Sheet2").Range("B5").Value = Worksheets("Sheet1").Range("V2").Value &  " " & Worksheets("Sheet1").Range("W2").Value 

'Get adress 
Worksheets("Sheet2").Range("B6").Value = Worksheets("Sheet1").Range("AB2").Value 

'Create pdf for this row 
RDB_Worksheet_Or_Worksheets_To_PDF() 


End Sub 
+0

는 당신이 우리를 보여줄 수 당신은 무엇을 시도? 코드를 묻는 질문은 해결 된 문제에 대해 최소한의 이해를 보여 주어야합니다. 시도한 해결책, 실패한 이유 및 예상되는 결과를 포함시킵니다. 참고 항목 : [Stack Overflow question checklist] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) –

+0

지금까지 가지고있는 매크로 코드를 제공 하시겠습니까? – wonko79

+0

현재 코드 추가 – Rupal

답변

2

해결! (나를 위해) 작동

최종 코드 :

Dim pointer As Integer 
pointer = 2 

Do While Not IsEmpty(Worksheets("Sheet1").Range("V" & pointer)) 

Private Sub CommandButton1_Click() 

'Get name 
    Worksheets("Sheet2").Range("B" & pointer).Value = Worksheets("Sheet1").Range("V" & pointer).Value &  " " & Worksheets("Sheet1").Range("W"& pointer).Value 

'Get adress 
Worksheets("Sheet2").Range("B" & pointer).Value = Worksheets("Sheet1").Range("AB" & pointer).Value 

'Create pdf for this row 
RDB_Worksheet_Or_Worksheets_To_PDF() 

pointer = pointer + 1 
Loop 


End Sub 
+0

당신은 절대적으로 정확합니다, 나는 대답을 붙이기에는 너무 빠르다. 솔루션 코드가 수정되었습니다. – Rupal

1

당신은 당신의 V 열의 모든 셀을 반복하는 루프가 필요합니다.

Private Sub CommandButton1_Click() 

    Dim ws1 As Worksheet 
    Set ws1 = Sheets(1) 

    Dim ws2 As Worksheet 
    Set ws2 = Sheets(2) 

    Dim cell As Range 
    For Each cell In ws1.Range("V2:V" & ws1.Range("V" & Rows.Count).End(xlUp).Row) 

     ws2.Range("B5") = cell & Chr(32) & cell.Offset(0, 1) 
     ws2.Range("B6") = cell.Offset(0, 6) 

     'RDB_Worksheet_Or_Worksheets_To_PDF() 

    Next 

End Sub 
+0

고맙지 만, 거기에 무슨 일이 일어날 지 알기 때문에 코드로 갈 것입니다. – Rupal

+0

나쁜 날이 있습니까? 나는 그 해결책을 스스로 발견했다, 나는 그것이 좋은 것이라고 말한다. 나는 당신의 코드를 통해 btw를 읽었습니다 - 나와 같은 초보자에게는 자신의 코드를 이해하는 것이 더 쉽습니다. 도와 주셔서 감사합니다. 나는 당신의 코드 atm을 사용하지 않고 있습니다. 편하게 하다. – Rupal

관련 문제