【发布时间】:2018-12-05 19:14:54
【问题描述】:
我有一个包含多张工作表的工作簿。
每个包含数据的工作表都有一个公共列 K,其中包含客户经理名称。 在 Sheet2 中,我使用列表在 C1 中使用了数据验证字段,因此创建了一个下拉列表,我可以在其中选择客户经理。 因此,如果我选择 Charlie Brown 并运行宏,我希望过滤所有工作表以仅显示 Charlie Brown 的数据。
我是一个绝对的 VBA 初学者,所以我无情地骚扰了 Google 先生——大多数建议都涉及对过滤器值进行硬编码,而不是使其成为可变单元格值。 我发现的最好的是:
子 apply_autofilter_across_worksheets()
将 xWs 调暗为工作表
出错时继续下一步
对于工作表中的每个 xW
xWs.Range("K").AutoFilter 1, CLng(Sheets("Sheet2").Range("C1").Value)
下一个
结束子
当我运行宏时:
• 肯定 - 没有错误!
• 负面 - 没有任何反应
我不确定这是做什么的:xWs.Range("K") - 原始脚本在列字母后面有一个数字,但无论我在它后面放什么数字,它没有区别。
我还在 C1 中简单地键入了一个客户经理名称,没有任何影响。很明显,这一切都被破坏了。 有 8 个数据工作表,外加 Sheet2。列数因工作表而异,但没有一个超过 AZ。
任何帮助将不胜感激!
【问题讨论】:
-
“on error resume next”隐藏错误。删除该行,然后重新运行您的代码。