存储第一行过滤数据的单元格内容

时间:2015-11-10 18:13:11

标签: excel vba excel-vba

我正在编写一个宏,它将使用一个选项卡中的数据自动生成报告。 数据存储在以下列中:日期,班次(白天或夜晚),单位ID,操作员姓名缩写,单位正常运行时间和注释。对于报告,我需要先按日期对数据进行排序,然后按每个单位对每个班次进行迭代。每种排序的数据只有一行分成单元格,例如:

Unit | Shift | Operator Initials | Up Time | Comments.

然后我需要为下一个班次/单位集求助数据并继续通过所有单位。使用两个For循环,我已经通过单位和班次自动迭代。但是,一旦过滤,我无法弄清楚如何复制数据。使用硬编码的单元格引用,每次迭代都会得到相同的数据(如预期的那样)。

如何告诉Excel复制(或更好地保存为变量)在标题行正下方显示的每个单元格中的值?

2 个答案:

答案 0 :(得分:0)

您可以使用方法SpecialCells(xlCellTypeVisible)在数据过滤后选择并复制数据

示例:

Sheet1.Range("A1:D10")SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheet2.Paste

答案 1 :(得分:0)

您可能要考虑只遍历已排序表中的所有行,而不是过滤和复制显示的第一行,而当单位和移位不等于上一行时,将一行复制到另一张表中