Excel宏循环遍历行并复制到另一个工作表

时间:2013-10-29 10:55:43

标签: excel loops excel-vba pdf vba

我是VBA的新手并试图在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 

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分: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