【问题标题】:vba code for filtering on multiple sheets用于在多张纸上过滤的 vba 代码
【发布时间】:2015-10-26 12:34:48
【问题描述】:

我的工作簿有多张工作表,每张工作表中的列数相同。每天都会在工作簿中添加新工作表。

是否可以通过运行 vba 代码将第一个工作表上的过滤数据传输到后续工作表?

问候

【问题讨论】:

  • 是的,但 SO 不是代码编写服务。如果您尝试过一些代码但它不起作用,请发布它并告诉我们它在哪里引发错误,以及错误是什么,我们会尽力提供帮助。
  • 在您的标题上进行网络搜索,这是一个非常受欢迎的主题
  • 谢谢你,马克和戴夫斯。在网上我得到一个代码,但它显示错误“应用程序定义或对象定义错误”。请帮忙,我如何在这里发布代码。

标签: excel vba


【解决方案1】:

您可以使用

访问第一张工作表的过滤器和相应的过滤范围
    Dim rng As Range
    With Sheets(1)     
      .AutoFilter
    Set rng = .AutoFilter.Range
    End With

过滤器的所有信息都存储在 AutoFilter 对象的过滤器集合中

Dim filters As Filters 
Set filters = Sheets(1).AutoFilter.Filters

此集合中的每个项目都代表过滤范围中的一列。以下语句将为您提供第一列的标准 1:

filters.Item(1).Criteria1

您可以将获得的信息用于您想要将它们传输到的其他表格上。通过 Range 对象的 AutoFilter 方法执行此操作 (Documentation)

如果列与您所说的相同,则可以使用地址属性轻松获取目标范围:

Sheets(n).Range(rng.address).AutoFilter arguments_here

【讨论】:

  • @KISHORBHOIR 如果它解决了您的问题,您能否将答案标记为已接受?谢谢
猜你喜欢
  • 1970-01-01
  • 2018-12-15
  • 2019-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 2020-06-22
相关资源
最近更新 更多