Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 存储筛选数据的第一行中的单元格内容_Vba_Excel - Fatal编程技术网

Vba 存储筛选数据的第一行中的单元格内容

Vba 存储筛选数据的第一行中的单元格内容,vba,excel,Vba,Excel,我正在编写一个宏,它将使用一个选项卡中的数据自动生成报告。 数据存储在以下列中:日期、班次(白天或晚上)、UnitID、操作员姓名首字母、机组正常运行时间和注释。对于报告,我需要首先按日期对数据进行排序,然后按每个班次的每个单元进行迭代。每种排序的数据将仅为一行,分为以下单元格: Unit | Shift | Operator Initials | Up Time | Comments. 然后我需要利用下一个班次/机组设置的数据,并继续通过所有机组。使用两个For循环,我通过单元和移位自动完成

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

Unit | Shift | Operator Initials | Up Time | Comments.
然后我需要利用下一个班次/机组设置的数据,并继续通过所有机组。使用两个For循环,我通过单元和移位自动完成了迭代。但是,我不知道如何在数据被过滤后复制它。使用硬编码的单元格引用,我每次迭代都会得到相同的数据(正如预期的那样)


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

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

例如:

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

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

例如:

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

<>而不是过滤和复制所显示的顶部行,您可能需要考虑只在排序表中遍历所有行,当单元和移位不等于前一行时,将行复制到另一个表。

,而不是筛选和复制所显示的顶行,您可能需要考虑只在排序表中遍历所有行,当单元和换档不等于前一行时,将行复制到另一个表。

EtvvAM,只要排序结果显示数据,那就行得通。我定期将空数据作为最终结果,在这种情况下,我无法再提取空数据,工作表将转到200+行计数范围内的单元格。有什么办法可以解决这个问题吗?我不确定我是否理解您想要的内容,但是您可以使用这行代码
YourTable.Range.SpecialCells(xlCellTypeVisible).Rows.Count>1
Estevam来检查筛选后的表是否返回任何结果,只要排序结果是显示的数据,就可以了。我定期将空数据作为最终结果,在这种情况下,我无法再提取空数据,工作表将转到200+行计数范围内的单元格。有什么办法可以解决这个问题吗?不确定我是否理解您想要的内容,但您可以使用这行代码
YourTable.Range.SpecialCells(xlCellTypeVisible).Rows.Count>1检查筛选后的表是否返回任何结果