我正在尝试构建一个宏。宏的目标在A列中找到一个名称,然后从D,H,I,K和L列复制信息。
目前我只能复制整行而不是特定列。此信息粘贴在工作表中(" Recon")。
下面是我的工作表(" Recon")的屏幕截图,其中包含此工作表中的标题。我已经在其他工作表中输入了我想要粘贴的列名。
Sub CopyRows()
Dim bottomL As Integer
bottomL = Sheets("Cash Transactions RBS December ").Range("A" & Rows.Count).End(xlUp).Row
Dim c As Range
For Each c In Sheets("Cash Transactions RBS December ").Range("A1:A" & bottomL)
If c.Value = "M1 GP LtdEUR" Then ' this should be based on name in cell value H
c.EntireRow.Copy Worksheets("Recon").Range("A" & Rows.Count).End(xlUp).Offset(1)
End If
Next c
End Sub
答案 0 :(得分:0)
首先,将bottomL声明为Long,如果你有超过32767行,整数将导致溢出错误。你现在可能不需要它,但这只是一个好习惯。如果仅需要值,请不要复制,而是直接赋值。我会这样做:
With Worksheets("Recon").Range("A" & Rows.Count).End(xlUp)
.Offset(1, 0).Value = c.EntireRow.Range("D1")
.Offset(1, 1).Value = c.EntireRow.Range("H1")
.Offset(1, 2).Value = c.EntireRow.Range("I1")
'The same for K and L
End With
但是还有很多其他的可能性,你可以使用相交的偏移量作为例子。