特别说明: Dictionary的CompareMode属性与VBA的Comparison常数是一致的: 常数 | 值 | 描述 |
---|
VbUseCompareOption | -1 | 使用Option Compare语句的设置进行比较。 | | |
---|
VbBinaryCompare | 0 | 进行二进制的比较。 | VbTextCompare | 1 | 进行文字的比较。 | vbDatabaseCompare | 2 | 用于 Microsoft Access(仅限于Windows),进行以数据库所含信息为基础的比较。 |
区别:
Sub macro1() Dim d As New Dictionary, s, i As Long s = [{"aa","Aa","aA"}] On Error Resume Next d.CompareMode = BinaryCompare'二进制方式比较,即a,A是不同字符 For i = 1 To 3 d.Add s(i), "" Next Debug.Print Join(d.Keys, vbCrLf); vbCrLf; "d.Count=" & d.Count End Sub 返回: aa Aa aA d.Count=3 Sub macro2() Dim d As New Dictionary, s, i As Long s = [{"aa","Aa","aA"}] On Error Resume Next d.CompareMode = TextCompare'文本方式比较,即a,A是相同字符 For i = 1 To 3 d.Add s(i), "" Next Debug.Print Join(d.Keys, vbCrLf); vbCrLf; "d.Count=" & d.Count End Sub
返回: aa d.Count=1 另: 以下函数也具有此属性,应用时需要注意: InStr 函数返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。 语法 InStr([start, ]string1, string2[, compare]) InStrRev函数描述 返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。 语法 InstrRev(stringcheck, stringmatch[, start[, compare]]) StrComp 函数返回 Variant (Integer),为字符串比较的结果。 语法 StrComp(string1, string2[, compare]) Replace函数描述 返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。 语法 Replace(expression, find, replace[, start[, count[, compare]]]) Filter函数描述 返回一个下标从零开始的数组,该数组包含基于指定筛选条件的一个字符串数组的子集。 语法 Filter(sourcesrray, match[, include[, compare]]) Split函数描述 返回一个下标从零开始的一维数组,它包含指定数目的子字符串。 语法 Split(expression[, delimiter[, limit[, compare]]]) 如果模块级别使用了Option Compare {Binary | Text | Database}声明,Dictionary对象与以上列举函数将默认使用此格式. 常数 | 值 | 描述 |
---|
VbUseCompareOption | -1 | 使用Option Compare语句的设置进行比较。 | | |
---|
VbBinaryCompare | 0 | 进行二进制的比较。 | VbTextCompare | 1 | 进行文字的比较。 | vbDatabaseCompare | 2 | 用于 Microsoft Access(仅限于Windows),进行以数据库所含信息为基础的比较。 |
区别:
Sub macro1() Dim d As New Dictionary, s, i As Long s = [{"aa","Aa","aA"}] On Error Resume Next d.CompareMode = BinaryCompare'二进制方式比较,即a,A是不同字符 For i = 1 To 3 d.Add s(i), "" Next Debug.Print Join(d.Keys, vbCrLf); vbCrLf; "d.Count=" & d.Count End Sub 返回: aa Aa aA d.Count=3 Sub macro2() Dim d As New Dictionary, s, i As Long s = [{"aa","Aa","aA"}] On Error Resume Next d.CompareMode = TextCompare'文本方式比较,即a,A是相同字符 For i = 1 To 3 d.Add s(i), "" Next Debug.Print Join(d.Keys, vbCrLf); vbCrLf; "d.Count=" & d.Count End Sub
返回: aa d.Count=1 另: 以下函数也具有此属性,应用时需要注意: InStr 函数返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。 语法 InStr([start, ]string1, string2[, compare]) InStrRev函数描述 返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。 语法 InstrRev(stringcheck, stringmatch[, start[, compare]]) StrComp 函数返回 Variant (Integer),为字符串比较的结果。 语法 StrComp(string1, string2[, compare]) Replace函数描述 返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。 语法 Replace(expression, find, replace[, start[, count[, compare]]]) Filter函数描述 返回一个下标从零开始的数组,该数组包含基于指定筛选条件的一个字符串数组的子集。 语法 Filter(sourcesrray, match[, include[, compare]]) Split函数描述 返回一个下标从零开始的一维数组,它包含指定数目的子字符串。 语法 Split(expression[, delimiter[, limit[, compare]]]) 如果模块级别使用了Option Compare {Binary | Text | Database}声明,Dictionary对象与以上列举函数将默认使用此格式.
[此贴子已经被作者于2007-9-9 0:32:05编辑过] |