使用列function – Excel VBA

我一直在这个网站上寻找答案,但是没有成功。 我有这个代码,我通过一行数字循环,并根据当时在单元格中的数字,确定我复制并粘贴到工作表。 我正在使用列,因为这是我可以使我的代码dynamic的唯一方法。 它的工作原理,但是当我粘贴时,我想粘贴在比现在粘贴的位置更低的单元格中。 我想知道列是否有指定什么列和粘贴我的数据在哪里的方式。

码:

Dim sh As Worksheet Dim rw As Range Dim row As Range Dim cell As Range Dim RowCount As Integer Set rw = Range("A5:CG5") Set sh = ActiveSheet For Each row In rw.Rows For Each cell In row.Cells Select Case cell.Value Case "2" ThisWorkbook.Worksheets("Sheet1").Range("E27:E51").Copy Destination:=Sheets("Sheet2").Columns(4) End Select Next cell Next row 

Jeeped说,使用Destination:=Sheets("Sheet2").Cells(27, 5) Destination:=Worksheets(2).Range("E27") Destination:=Sheets("Sheet2").Cells(27, 5)Destination:=Worksheets(2).Range("E27")可以解决您的问题Destination:=Sheets("Sheet2").Cells(27, 5)

既然你想多学一点,我做了一个例子的解释:

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-column-property-excel在链接上说明.Column:

列A返回1,列B返回2,依此类推。

同样的.Rows

使用.Cells https://msdn.microsoft.com/pt-br/library/office/ff194567.aspx因此,您可以使用.Cells(行,列)或.Cells(范围的索引)或整个对象:

 With Worksheets("Sheet1").Cells.Font .Name = "Arial" .Size = 8 End With 

例如,如果要将电子表格变为dynamic:从范围$ E $ 27复制到最后一行,并在Sheet1上从列$ E写入到最后一列,而Sheet2上第一行没有写入任何内容。

  Sub test() 'Declare variables here Dim sht1, sht2 As Worksheet 'sht1 has the data and sht2 is the output Worksheet, you can change the names last_row = Worksheets(1).Range("E65536").End(xlUp).Row last_column = Worksheets(2).Cells(1, sht1.Columns.Count).End(xlToLeft).Column 'Data add For i = 27 To last_row 'Start from Row 27 Worksheets(2).Cells(i - 26, last_column + 1) = Worksheets(1).Cells(i, 5) Next i MsgBox "Data Updated" End Sub 

而一个带有i = i + 1和For循环的基本dynamic工作簿的例子,将一行数据分割成多个独特的行到一个新的工作表中,以包含作为值和单元格内容的标题作为值