我有一个宏,我正在尝试构建。宏的目标在A列中查找名称,然后从D、H、I、K和L列复制信息。
目前,我只能复制整行,而不能复制特定列。此信息将粘贴到工作表(“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
发布于 2018-01-04 12:56:40
首先声明bottomL为Long,integer在超过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
但是还有许多其他的可能性,例如,你可以使用Intersect的偏移量。
https://stackoverflow.com/questions/48095403
复制