C列中包含的值,这将是客户选择和经常更新。我想让列D动态应用数据验证,并从该列表中提取数据。但是,它需要包含按字母顺序排列的唯一值。通过删除重复VBA仍然抛出尽管displayalerts弹出=在我的电子表格假
什么我目前做的是用下面的公式,按字母顺序在一个隐藏的列(BK)订购这些值。 (注意:我发现这个网站上显示它应该只显示唯一的值,但它没有)。
{=INDEX(List,MATCH(0,IF(MAX(NOT(COUNTIF($BK$15:BK15,List))*(COUNTIF(List,">"&List)+1))=(COUNTIF(List,">"&List)+1),0,1),0))}
动态更新列d,我使用下面的代码:
Dim NewRng As Range
Dim RefList As Range, c As Range, rngHeaders As Range, RefList2 As Range, msg
On Error GoTo ErrHandling
Set NewRng = Application.Intersect(Me.Range("D16:D601"), Target)
If Not NewRng Is Nothing Then
Set rngHeaders = Range("A15:ZZ16").Find("Status List", After:=Range("E15"))
Set RefList = Range(rngHeaders.Offset(1, 0).Address, rngHeaders.Offset(100, 0).Address)
RefList.Copy
RefList.Offset(0, 1).PasteSpecial xlPasteValues
Set RefList2 = RefList.Offset(0, 1)
Application.DisplayAlerts = False
RefList2.RemoveDuplicates Columns:=1
For Each c In NewRng
c.Validation.Delete
c.Validation.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Formula1:="=" & RefList2.Address
Next c
End If
Application.DisplayAlerts = True
Application.EnableEvents = True
这似乎是工作,但我在列d细胞点击每次它仍然抛出一个弹出框称为“Remove Duplicates”,显示两个选中的复选框 - “全选”和“列BL”。它还会告诉我找到了多少重复项,并保留了多少个唯一值。
我在为什么displayalerts =假还没有把这个关闭亏损,但它绝对不是有这个火每次点击列D.有没有人见过这个选项? (顺便说一下,我在Mac上使用Excel 2016)。
你可以尝试记录宏来比较生成的代码。 'RefList2.RemoveDuplicates列:=阵列(1),部首:= xlNo' https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-removeduplicates-method-excel – Slai
我添加头:= xl今天早上,但我仍然看到弹出窗口。 – Mknerr
我想这个问题可能是你不传球达阵分列 – Slai