动态选择要复制到excel宏中另一个工作表的列数

时间:2016-12-13 19:02:22

标签: excel vba excel-vba

所以我的Excel文件中有两张纸,我试图只将一些列(比如5)复制到第二张纸上。我怎么做?这是我的VBA代码

Sub button_click()
   Set i = Sheets("Sheet1")
   Set e = Sheets("Sheet2")
   Dim d
   Dim j
   d = 1
   j = 13

   Do Until IsEmpty(i.Range("K" & j))

   If i.Range("K" & j) = "Y" Then
   d = d + 1
   e.Rows(d).Value = i.Rows(j).Value

   End If
   j = j + 1
   Loop
End Sub

所以现在这个工作正常,但我唯一需要改变的是,大约有10列,但我只希望前5个要复制。如果我使用除了行之外的列,如i.Rows(j).Columns(5).Value它只复制1列。我不知道如何复制我需要的所有列。

1 个答案:

答案 0 :(得分:2)

使用您建议的方法,您可以将列范围指定为.Columns("A:E"),所以:

e.Rows(d).Columns("A:E").Value = i.Rows(j).Columns("A:E").Value