excelvba字典有什么用
我在网上经常看到文章和论坛上谈到EXCEL VBA字典,但不明白这有什么用,请高手指点。
[解决办法]
用Exists属性查找重复项比较方便
以下是在其它地方copy过来的,希望对你有帮助
*********************************
1.Dictionary对象的属性和说明
属 性 说 明
CompareMode (仅用于VBScript)设定或返回键的字符串比较模式
Count 只读。返回Dictionary里的键/条目对的数量
Item(key) 设定或返回指定的键的条目值
Key(key) 设定键值
1.1.CompareMode 属性
描述:设置或返回某个 Dictionary 对象中的比较字符串关键字的比较模式。
语法:object.CompareMode[ = compare]
CompareMode 属性具有下列部分:
部分 描述
object 必需的。总是一个 Dictionary 对象的名称。
compare 可选的。如果提供的话,compare 是一个代表比较模式的值,该比
较模式用于象 StrComp 这样的函数。
设置:compare 参数可以具有下列值:
常数 值 描述
VbUseCompareOption -1 使用 Option Compare 语句的设置值进行比较。
VbBinaryCompare 0 进行二进制比较。
VbTextCompare 1 进行文字比较。
VbDatabaseCompare 2 仅用于 Microsoft Access。进行基于您自己数据库
中信息的比较。
说明:如果试图对已经包含数据的 Dictionary 对象的比较模式进行更改的话,就会
出错。
CompareMode 属性所用的参数值与 StrComp 函数所用的 compare 参数相
同。可以用大于 2 的值表示使用特定 Locale IDs (LCID) 的比较。
1.2.Count 属性
描述:返回集合或 Dictionary 对象中的条目数。只读。
语法:object.Count
object 总是"应用于"列表中某一项的名称。
1.3.Item 属性
描述:对 Dictionary 对象中指定的 Key,设置或返回一个 Item 。对于集合来说,基于指定的 Key ,返回一个 Item 。读/写属性。
语法:object.Item(key) [= newitem]
Item 属性具有下列部分:
部分 描述
object 必需的。总是一个集合或 Dictionary 对象的名称。
key 必需的。与被检索或添加的条目相关联的 Key 。
newitem 可选的。仅用于 Dictionary 对象;没有用于集合的应用程序。如果
提供的话,newitem 是与指定的Key 相关联的新值。
说明:如果在改变某个 item 时,没有找到 key,则用指定的newitem创建一个新
的 key 。如果在试图返回某个已存在条目时,没有找到 key,则创建一个新
key,且其相应的条目为空。
1.4.Key 属性
描述:在一个 Dictionary 对象中设置一个 key。
语法:object.Key(key) = newkey
Key 属性具有下列部分:
部分 描述
object 必需的。总是一个 Dictionary 对象的名字。
key 必需的。被更改的 Key值。
newkey 必需的。替换指定 key 的新值。
说明:如果在更改某个 key 时,没有找到 key,则会出现运行时错误。
2.Dictionary对象的方法和说明
方 法 说 明
Add(key,item) 增加键/条目对到Dictionary
Exists(key) 如果指定的键存在,返回True,否则返回False
Items() 返回一个包含Dictionary对象中所有条目的数组
Keys() 返回一个包含Dictionary对象中所有键的数组
Remove(key) 删除一个指定的键/条目对
RemoveAll() 删除全部键/条目对
2.1.Add方法
描述:添加一对相对应的关键字和条目到 Dictionary 对象。
语法:object.Add key, item
Add方法的语法有如下几部分:
部分 描述
Object 必需的。一个 Dictionary 对象的名字。
Key 必需的。与所添加的条目相关联的关键字。
Item 必需的。与所添加的关键字相关联的条目。
说明:如果该关键字已经存在,则产生一个错误。
2.2.Exists 方法
描述:如果在 Dictionary 对象中指定的关键字存在,返回 True,若不存在,返回
False。
语法:object.Exists(key)
Exists 方法语法有如下几部分:
部分 描述
Object 必需的。始终是一个 Dictionary 对象的名字。
Key 必需的。在 Dictionary 对象中搜索的 Key 值。
2.3.Items 方法
描述:返回一个包含 Dictionary 对象中所有条目的数组。
语法:object.Items
object始终是一个 Dictionary 对象的名字。
说明:下面的代码举例说明了 Items 方法的使用。:复制内容到剪贴板代码:
Dim a, d, i '创建一些变量
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" '添加一些关键字和条目。
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
a = d.Items '取得条目
For i = 0 To d.Count -1 '遍历数组
Print a(i) '打印条目
Next2.4.Keys方法
描述:返回一个数组,该数组包含一个 Dictionary 对象中的全部已有的关键字。
语法:object.Keys
object始终是一个 Dictionary 对象的名字。
说明:下面的代码举例说明了 Keys 方法的使用。复制内容到剪贴板代码:
Dim a, d, i '创建一些变量
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" '添加一些关键字和条目。
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
a = d.keys '取得关键字
For i = 0 To d.Count -1 '遍历数组
Print a(i) '打印关键字
Next2.5.Remove 方法
描述:从一个 Dictionary 对象中删除一个关键字和条目对。
语法:object.Remove(key)
Remove 方法语法有如下几部分:
部分 描述
Object 必需的。始终是一个 Dictionary 对象的名字。
Key 必需的。Key 与要从 Dictionary 对象中删除的关键字和条目对相
关联。
说明:如果指定的关键字和条目对不存在,则发生一个错误。
下面的代码举例说明了 Remove 方法的使用:复制内容到剪贴板代码:
Dim a, d, i '创建一些变量
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" '添加一些关键字和条目
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
a = d.Remove("b") '删除第二对2.6.RemoveAll 方法
描述:RemoveAll 方法从 Dictionary 对象中删除所有关键字和条目对。
语法:object.RemoveAll
object始终是一个 Dictionary 对象的名字。
说明:下面的代码举例说明了 RemoveAll 方法的用法:复制内容到剪贴板代码:
Dim a, d, i '创建一些变量
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" '添加一些关键字和条目
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
a = d.RemoveAll '清除字典3.应用实例(aurora提供解答)
3.1. http://www.officefans.net/cdb/viewthread.php?tid=36318 3楼(批量替换)
3.2. http://www.officefans.net/cdb/viewthread.php?tid=42238 11楼(从一个数组中将存在的与另一数组的元素相同的元素删除)