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

我是VBA新手,想在Excel中实现这个目标:

我有一个sheet1,其中有值的行。 我已经创build了一个button,执行并将第一行数据复制到另一个工作表(工作表2)到一些预定义的单元格(即单元格A1中的值进入例如B3)。 然后我将把它保存为pdf。

现在我希望我的代码更加dynamic,并为Sheet1中的每一行执行此操作。 因此,首先将A1-D1中的所有值复制到sheet2,创buildpdf,然后将下一行(A2-D2)复制到sheet 2,创buildpdf等等。

我怎么能实现这个?

我的代码工作正常的一行:

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 

解决了!

最终代码适用于(对我而言):

 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 

您需要循环遍历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