使用当前的AutoFilter加载数据验证

时间:2012-10-09 14:38:06

标签: excel-vba excel-2010 validation autofilter vba

我遇到的情况是我使用两个数据验证单元格,这些单元格从数据表中的一列(每列)加载数据。

市场; suprv;商店; ....

数据验证

  • cellDV1 - 来自表[市场] 的唯一值
  • cellDV2 - 来自表[suprv]
  • 的唯一值

cellDV1 &当用户查看工作表时, cellDV2 会预先加载各自的唯一值。

当用户从 cellDV1 中选择一个值时,它会使用所选值自动过滤。然后,我想重新加载 cellDV2 ,并在中显示精确的结果。

我遇到的问题是它正在加载表格中该列/字段的所有唯一值,而不是自动筛选结果。

用法:

LoadDataValidation Range("Table[suprv]"), Range("cellRange")

LoadDataValidation:

Dim str As String
str = DistinctValues(srcrng)
Dim val As Validation
Set val = Range(destrng.Address).Validation
val.Delete
val.Add xlValidateList, xlValidAlertStop, xlBetween, str

任何想法,如何只选择过滤结果而不是表中的整个数据集?

1 个答案:

答案 0 :(得分:1)

我没有使用过表格,但是你可以将SpecialCells(xlCellTypeVisible)属性应用于Range

所以Range("Table[suprv]").SpecialCells(xlCellTypeVisible)是你在LoadDataValidation中的第一个参数