如何在执行宏的函数中在Excel中强制执行数据验证?

时间:2017-06-06 14:05:16

标签: excel vba excel-vba

我正在编制公司数据库和相应的3个字母的首字母缩略词。我有这个宏,当一个新的公司被添加到数据库时自动生成一个首字母缩略词。

Function Abbv(pWorkRng As Range) As String
    Dim arr As Variant
    Dim xValue As String
    Dim output As String

    xValue = pWorkRng.Value
    arr = VBA.Split(Trim(xValue))

    For i = 0 To UBound(arr)
        output = output & VBA.Left(arr(i), 1) & ""
    Next

    output = Left(output, 3)
    Abbv = output
End Function

我试图强制执行数据验证以防止输入重复的条目,以便任何新生成的首字母缩略词与以前存在的任何首字母缩略词都不相同(因为新增公司的首字母缩写的可能性很小)与数据库中已有的首字母缩略词相同。)

这是我用来防止重复输入的公式,但它仍然允许自动生成的首字母缩略词是重复的。

=COUNTIF($D$1:$D$200,D1)=1

如何获取此重复条目警告以防止任何自动生成的首字母缩写词重复?

1 个答案:

答案 0 :(得分:0)

查看WorksheetFunction.CountIf方法

Application.WorksheetFunction.CountIf(Arg1, Arg2)

哪里......

  • Arg1是您想要计算Worksheets("Sheet1").Range("$D$1:$D$200")
  • 等单元格的单元格范围
  • Arg是数字,表达式,单元格引用或文本形式的标准,用于定义将对哪些单元格进行计数:例如你的Abbv