我已将Dictionary设置为对象,向该字典添加了几个项目,但它似乎区分大小写。无论如何我可以设置字典来识别不同的版本吗?
我的代码:
Sub Test()
Dim sheet1 As String
Dim Dict As Object
Dim c As Range
Sheet1= "TEST"
Set Dict = CreateObject("Scripting.Dictionary")
Dict.Add "MIKE", 0
Dict.Add "PHIL", 0
Dict.Add "Joe", 0
For Each c In ActiveWorkbook.Worksheets(Sheet1).UsedRange
If Dict.Exists(ActiveWorkbook.Worksheets(Sheet1).Cells(c.Row, c.Column).Value) Then
Dict(ActiveWorkbook.Worksheets(Sheet1).Cells(c.Row, c.Column).Value) = Dict(ActiveWorkbook.Worksheets(Sheet1).Cells(c.Row, c.Column).Value) + 1
End If
Next
Sheet1.Cells(25, 3) = Dict("MIKE")
Sheet1.Cells(25, 3) = Dict("PHIL")
Sheet1.Cells(25, 3) = Dict("Joe")
Set Dict = Nothing
End Sub
所以我想认识MIKE的“mike”和PHIL等的“Phil”。
提前致谢!
答案 0 :(得分:4)
我总是喜欢为我的所有编码做好准备。因此,在编写任何其他代码之前,位于我的工作表或表单中的所有模块和代码都以以下三行开头。
Option Base 0
Option Explicit
Option Compare Text
如果由于某种原因我希望在特定的Sub
中处理不同的内容,那么我只在这个特定的sub
中执行此操作,并按照上面的注释(示例)中的建议执行:
dict.CompareMode = BinaryCompare 'if I need a case-sensitive compare in this sub
由于VBE知道dict
是一个字典,它可以提供自动完成的命题。这只有早期绑定才有可能。使用后期绑定VBE不会提供任何自动完成命题。
答案 1 :(得分:2)
添加到@Ralph
dict.CompareMode = TextCompare
是我将文件更改为。