在Excelmacros中dynamicselect要复制到另一个工作表的列数

所以我有两张在我的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)这样的行之外使用列,值只能复制1列。 我不知道如何复制我需要的所有列。

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

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