【问题标题】:Find and Count Unique Letters in Array List VBA在数组列表 VBA 中查找和计算唯一字母
【发布时间】:2014-04-24 17:39:54
【问题描述】:

我需要能够计算数组中唯一字母的数量,例如:

[A01, B01, C01, A02, C02]

对于这个例子,结果应该是 3。因此我只需要在找到新字母的情况下包含该值。

这是在 Word 2007 用户表单中完成的。 关于完成这样的任务有什么建议或例子吗?

【问题讨论】:

  • 只有字母,还是字符?
  • Ia "a" 与 "A" 不同?
  • 不需要区分大小写。

标签: arrays vba userform


【解决方案1】:

这对我有用。运行Test()宏获取demo数据的结果。

Function UniqueLetterCount(ByRef Values() As String) As Integer

    UniqueLetterCount = 0
    Dim LettersSeen    As String
    Dim i As Integer
    Dim Letter As String
    LettersSeen = ""

    For i = LBound(Values) To UBound(Values)
        Letter = Left(Values(i), 1)
        If InStr(LettersSeen, Letter) = 0 Then 'if Letter was not found in LettersSeen
            UniqueLetterCount = UniqueLetterCount + 1
            LettersSeen = LettersSeen & Letter
        End If
    Next

End Function


Sub Test()

    Dim DemoArray(9) As String
    DemoArray(0) = "A01"
    DemoArray(1) = "A02"
    DemoArray(2) = "B01"
    DemoArray(3) = "C01"
    DemoArray(4) = "A03"
    DemoArray(5) = "D01"
    DemoArray(6) = "D02"
    DemoArray(7) = "C02"
    DemoArray(8) = "B02"
    DemoArray(9) = "C03"
    MsgBox "Unique letter count is " & UniqueLetterCount(DemoArray)

End Sub

【讨论】:

    猜你喜欢
    • 2021-11-08
    • 2022-11-15
    • 2018-02-22
    • 2013-08-16
    • 2011-06-27
    • 2014-07-08
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    相关资源
    最近更新 更多