在excel 2007中试图循环(非固定长度)列(比如说C)和行值匹配(比如说“高”),然后将单元格Dx和Bx的值传递给新行中的“传输”表单,其中x是找到匹配项的行#。假设存在“转移”。
到目前为止,我已经得到了这个:
Public Sub CopyRows()
Sheets("Sheet1").Select
'Find the last row of data
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
'Loop through each row
For x = 1 To FinalRow
'Decide if to copy based on column C
ThisValue = Cells(x, 3).Value
If ThisValue = "High" Then
Cells(x, 1).Resize(1, 33).Copy
Sheets("Transfer").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Sheet1").Select
End If
Next x
End Sub
答案 0 :(得分:1)
我不会这样。我认为首先设置过滤器并仅复制可见行会更快地运行并且更容易编码。
答案 1 :(得分:1)
事实上,最好使用高级过滤器。
创建两个范围 - 一个用于条件(标题和单元格):
*C column header* | ------------------- High |
一个用于有用数据(仅限标题):
*B column header* | *D column header* -------------------------------------
然后使用
range("A:D").advancedfilter xlFilterCopy, range("criteria range"), range("copy range")
显然,使用Excel界面(数据 - 高级过滤器)更容易完成。