【问题标题】:Specifying range in VBA macros在 VBA 宏中指定范围
【发布时间】:2019-08-13 18:01:15
【问题描述】:

我对 VBA 真的很陌生。所以这对专家来说似乎是一个愚蠢的问题。

在互联网上研究了如何在 excel 中设置过滤器的动态范围后,考虑到您的列表可能会增长或缩小的情况,我偶然发现了几种方法。其中之一如下。

ActiveSheet.Range("A1").AutoFilter Field:=46, Criteria1:="1"

我知道你可以放两个参数来指定范围,第二个是可选的。在这个特别的地方,我只是把第一个单元格放在我的数据开始的地方。我的问题如下:

  1. 代码是否会根据第一个指定的单元格自动选择活动范围?
  2. 如果我的数据从“C5”开始,我还需要选择参数作为“A1”吗?
  3. 我正在从第 46 列中过滤掉一些内容。我在哪里指定我的第一个单元格有什么关系?例如,如果我选择了“C5”而不是“A1”,它将如何影响我的宏?
  4. 比方说,我想从第 2 列(即字段 2)中过滤掉一些内容。但我选择范围的参数为“D5”。它将如何影响我的宏代码?

【问题讨论】:

  • 我的答案是自己找出来!自己对此进行测试将让您真正了解当您从 Range.Autofilter 方法调整可用选项时会发生什么。虽然我们可以向您展示,但自己动手是一个很好的学习经验,而且您在看到结果后更有可能记住结果。

标签: excel vba


【解决方案1】:

自动筛选:一项小型研究

  • 嗯,我也很好奇。所以我研究了一下并创建了一个 工作簿,您可以在其中输入一些参数的参数 AutoFilter 方法,只需单击命令按钮 应用更改。下一次点击会移除过滤器。
  • 工作簿还包含更改时的行为结果 按行。同样的事情也可以按列来完成。
  • Workbook Download (Dropbox)

下图显示了工作簿中唯一工作表的初始状态。

这是我最好奇的:如果我过滤C8 会发生什么。有惊喜。

仍有大量未解答的问题,但这可以让您开始进行更深入的调查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2017-06-07
    • 1970-01-01
    • 2020-07-21
    相关资源
    最近更新 更多