我必须创建一个宏,它可以从源工作表中获取数据(将具有相同的格式,但对于我运行的每个示例具有不同的行数),并且必须每天多次运行它,并将行从该工作表复制到目标工作表上的指定位置。
Source工作表中有一列是本练习的驱动因素。根据此列中的值,它将选择具有相同值的所有行,并将它们粘贴到目标工作表的给定位置。
例如,如果该值为1,则它将获取所有具有'1'的行,并将它们粘贴到目标工作表的单元格A23处。如果值为2,则开始粘贴单元格A44等处的行。
下面是大部分代码。我面临的问题是,它粘贴了给定块中的行,但这段代码考虑了源表的标题以及逻辑过滤的任何行。
因此,如果有5行的参数值为1,然后是另外4行的参数值为2,当它运行整个代码时,如果第一个块从单元格A23开始,这将粘贴从单元格A24开始的5行(不包括源工作表上的第一行)。对于参数value = 2,代码排除了前5行,并从行A50开始粘贴,因为它考虑了parm 1的标题和5行。我如何使它排除被过滤掉的行?
注意:我遇到的问题是行属性,但我无法让它过滤掉这些行…任何帮助都将不胜感激。
Sub Test()
Dim cell As Range
For Each cell In Sheets("SrcSheet").Range("E:E")
If cell.Value = Sheets("DestSheet").Range("A20").Value Then
cell.EntireRow.Copy Sheets("DestSheet").Range("A23").Rows(Cells.Row)
ElseIf cell.Value = Sheets("DestSheet").Range("A41").Value Then
cell.EntireRow.Copy Sheets("DestSheet").Range("A44").Rows(Cells.Row)
End If
Next
End Sub
我已经尝试了代码的多种变体,但得到相同的结果,包括使用复制目标等。但删除Rows属性仅复制每个参数的最后一行,即使它复制的位置正确。
x1c 0d1x-这是源工作表
-这是具有预期结果的目标工作表
-这是包含实际结果的目标表。正如我在上面的描述中所尝试的那样;代码跳过块1中的一行(对于头)和块2中的5行(对于头和actg行值1的行)
1条答案
按热度按时间smtd7mpg1#
你试过
FILTER
公式吗?在DestSheet中,如果A1为“Block1”,则在A2中使用以下公式: