当前位置: 首页 > article >正文

【VBA 字典的引用和调用方法】

如何引用字典对象。在VBA中,字典不是内置的,所以需要引用Microsoft Scripting Runtime库。

在 VBA 中使用 Dictionary(字典)对象可以方便地存储键值对(Key-Item)数据,以下是引用方法和常用参数介绍:


1. 引用字典对象

接下来是关于创建字典实例的两种方法:前期绑定和后期绑定。前期绑定有智能提示,但需要设置引用;后期绑定则更灵活,但可能牺牲一些便利性。

VBA 中的字典需要引用 Microsoft Scripting Runtime 库:

  1. 打开 VBA 编辑器(按 Alt + F11)。
  2. 点击菜单栏的 工具引用
  3. 勾选 Microsoft Scripting Runtime,点击确定。

如果不想引用库,也可以通过 后期绑定 创建字典:

Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")

2. 字典的属性和方法

(1) 常用属性
属性描述
.Count返回字典中的键值对数量
.Key(key)获取或设置某个键的名称(可用于修改键名)
.Item(key)获取或设置某个键对应的值
.CompareMode设置键的比较模式(如是否区分大小写)
(2) 常用方法
方法描述参数说明
.Add(key, item)添加键值对key: 唯一键名;item: 对应的值
.Exists(key)检查键是否存在返回 Boolean 类型
.Keys()返回所有键的数组无参数
.Items()返回所有值的数组无参数
.Remove(key)删除指定键值对需提供存在的键名
.RemoveAll()清空字典无参数

3. 示例代码

用户可能的实际应用场景包括数据处理、去重、快速查找等。例如,使用字典来统计唯一值,或是快速检查某个键是否存在。可以给出几个示例,比如统计单词出现次数,或者合并数据。

(1) 基础用法
Sub DictionaryExample()Dim dict As New Scripting.Dictionarydict.CompareMode = TextCompare  ' 不区分大小写' 添加键值对dict.Add "Name", "Alice"dict.Add "Age", 25' 检查键是否存在If dict.Exists("Name") ThenMsgBox dict.Item("Name")  ' 输出: AliceEnd If' 修改值dict.Item("Age") = 26' 遍历所有键值对Dim key As VariantFor Each key In dict.KeysDebug.Print key & ": " & dict.Item(key)Next key' 删除指定键dict.Remove "Name"
End Sub
(2) 统计唯一值
Sub UniqueValues()Dim dataArr As VariantdataArr = Array("Apple", "Banana", "Apple", "Orange")Dim dict As New Scripting.DictionaryFor Each item In dataArrIf Not dict.Exists(item) Thendict.Add item, 1Elsedict.Item(item) = dict.Item(item) + 1End IfNext' 输出结果For Each key In dict.KeysDebug.Print key & ": " & dict.Item(key) & "次"Next
End Sub
' 输出:
' Apple: 2次
' Banana: 1次
' Orange: 1次

4. 注意事项

  • 唯一性:键名必须唯一,重复添加会报错(使用前需检查 .Exists(key))。
  • 默认比较模式:默认区分大小写,可通过 CompareMode 修改。
    • vbBinaryCompare(0):区分大小写(默认)
    • vbTextCompare(1):不区分大小写
  • 性能优势:字典的查询效率高(近似 O(1)),适合大数据处理。

通过灵活使用字典,可以高效处理数据分组、去重、快速查找等场景。

相关文章:

【VBA 字典的引用和调用方法】

如何引用字典对象。在VBA中,字典不是内置的,所以需要引用Microsoft Scripting Runtime库。 在 VBA 中使用 Dictionary(字典)对象可以方便地存储键值对(Key-Item)数据,以下是引用方法和常用参数介…...

基于开源AI智能名片链动2+1模式S2B2C商城小程序的管理与运营策略研究

摘要:本文通过分析开源AI智能名片链动21模式S2B2C商城小程序的技术架构与商业逻辑,探讨其在企业管理与运营中的实践价值。结合案例研究,论证该模式如何通过清晰的目标设定、动态反馈机制和资源整合能力,提升团队执行力与客户粘性。…...

储能电站:风光储一体化能源中心数字孪生

在 “双碳” 目标引领下,我国能源产业加速向清洁低碳、绿色化转型,风能、太阳能等可再生能源的开发利用成为关键。然而,风能和太阳能的波动性、间歇性与随机性,给大规模接入电网带来挑战。储能技术的兴起,为解决这一难…...

iOS 直播特殊礼物特效实现方案(Swift实现,超详细!)

特殊礼物特效是提升直播互动体验的关键功能,下面我将详细介绍如何在iOS应用中实现各种高级礼物特效。 基础特效类型 1.1 全屏动画特效 class FullScreenAnimationView: UIView {static func show(with gift: GiftModel, in view: UIView) {let effectView FullS…...

9. 现代循环神经网络

文章目录 9.1. 门控循环单元(GRU)9.1.1. 门控隐状态9.1.1.1. 重置门和更新门9.1.1.2. 候选隐状态9.1.1.3. 隐状态 9.1.2. 从零开始实现9.1.2.1. 初始化模型参数9.1.2.2. 定义模型 9.1.3. 简洁实现9.1.4. 小结 9.2. 长短期记忆网络(LSTM&#…...

视频太大?用魔影工厂压缩并转MP4,画质不打折!

在日常生活中,我们常常需要将视频文件转换成不同的格式以适应各种设备或平台的播放需求。魔影工厂作为一款功能强大且操作简单的视频转换工具,深受用户喜爱。本文中简鹿办公将手把手教你如何使用魔影工厂将视频转换为MP4格式,并进行个性化设置…...

Python中tqdm进度条工具和enumerate函数的使用详解

tqdm进度条工具 tqdm 是 Python 中一个非常流行的 进度条显示工具库,常用于迭代操作的可视化,比如训练神经网络、批量数据处理等任务。 一、tqdm 是什么? tqdm 全称是 taqaddum(阿拉伯语,意为“进展”)&a…...

最宽温度范围文本格式PT1000分度表-200~850度及PT1000铂电阻温度传感器计算公式

常用PT铂电阻温度传感器 该图片来自网络,在此对图片作者表示感谢。 白色陶瓷面为测温面。 近距离图片。 常用的有PT100、PT500、PT1000,不常用的还有 PT50、PT200、PT10000等,PT代表铂电阻,后面的数字是零摄氏度时电阻值&#…...

基于Netty架构的充电桩系统设计:服务器运维如何更好保障稳定性?

Netty是一个异步事件驱动的网络应用框架,用于快速开发高性能、高可靠性的网络服务器和客户端。它本质上是NIO的封装和增强,主要针对TCP/IP协议下高性能网络通信场景。 本设计通过Netty的高性能网络通信能力,结合充电桩行业特性,实…...

操作系统学习笔记第1章 操作系统概述(灰灰题库

1.单选题 用户发起系统服务请求时,处理器处于______。 A. 用户态 B. 核心态 C. 阻塞态 D. 挂起态 第 1 题 答案:A 解析:用户态下,用户程序只能执行非特权指令 。当用户发起系统服务请求(通常通过系统调用)时…...

后端开发实习生-抖音生活服务

职位描述 ByteIntern:面向2026届毕业生(2025年9月-2026年8月期间毕业),为符合岗位要求的同学提供转正机会。 团队介绍:生活服务业务依托于抖音、抖音极速版等平台,致力于促进用户与本地服务的连接。过去一…...

机器学习算法-sklearn源起

scikit-learn(简称 sklearn)是 Python 中最流行的开源机器学习库之一,基于 NumPy、SciPy 和 Matplotlib 构建。它提供了丰富的机器学习算法和工具,适用于数据挖掘和数据分析任务。以下是其核心特点的简介: 1、sklearn主…...

Keepalived 在不同场景下的高可用方案设计与最佳实践

一、Keepalived 典型应用场景深度解析 1. Web 服务器集群:统一入口与故障容错 1.1 场景需求 核心目标:为多台 Web 服务器提供统一 VIP 入口,隐藏后端节点细节,实现故障透明切换。 挑战: 确保用户请求在主节点故障时…...

注册并创建一个微信小程序

目录 (一)前往微信公众平台,并注册一个微信小程序账号 (二)配置微信小程序 (三)创建微信小程序项目 1.流程 1.1获取小程序ID 1.2下载微信开发者工具 1.3安装微信开发者工具 2.创建项目…...

CentOS 10:启动telnet服务

参考, 鳥哥私房菜 - 第七章、網路安全與主機基本防護:限制埠口, 網路升級與 SELinux 7.3.3 埠口与服务的启动/关闭及开机时状态设定 我们知道系统的 Telnet 服务通常是以 super daemon 来控管的,请您启动您系统的 telnet 试看看。 1 要启动 …...

计算机网络——每一层的用到的设备及其作用

计算机网络基础 OSI参考模型TCP/IP协议族集线器(Hub)交换机(Switch)路由器(Router)功能特点无线路由器(家庭宽带)光猫功能 网关(Gateway)功能应用场景特点 IP…...

OpenLayers 加载鹰眼控件

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图控件是一些用来与地图进行简单交互的工具,地图库预先封装好,可以供开发者直接使用。OpenLayers具有大部分常用的控件&#x…...

Eigen与OpenCV矩阵操作全面对比:最大值、最小值、平均值

功能对比总表 功能Eigen 方法OpenCV 方法主要区别最大值mat.maxCoeff(&row, &col)cv::minMaxLoc(mat, NULL, &maxVal, NULL, &maxLoc)Eigen需要分开调用,OpenCV一次获取最小值mat.minCoeff(&row, &col)cv::minMaxLoc(mat, &minVal, NU…...

安全基础与协议分析

5.1 Web安全基础 5.1.1 Web安全基础概览(一、二) Web安全的核心目标是保护Web应用及其数据免受攻击,涵盖以下关键领域: 攻击面: 前端漏洞(XSS、CSRF)。 后端漏洞(SQL注入、RCE&a…...

【Web前端】JavaScript入门与基础(一)

JavaScript简介 JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”,指的是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序的“脚本”。 JavaScript 是一种嵌入式(embedded)语言。它本身提供的核心语法不算…...

第一课:医学影像研究的科学思维与问题提出

课程目标: 理解科学思维在医学影像研究中的核心地位。掌握从临床实践、文献回顾及技术进展中发现医学影像研究问题的方法。学习如何凝练、评估并清晰表述一个具有研究价值的医学影像科学问题。熟悉医学影像研究问题提出的伦理考量。课程大纲与核心内容: 引言 医学影像研究的…...

前端大文件上传性能优化实战:分片上传分析与实战

前端文件分片是大文件上传场景中的重要优化手段,其必要性和优势主要体现在以下几个方面: 一、必要性分析 1. 突破浏览器/服务器限制 浏览器限制:部分浏览器对单次上传文件大小有限制(如早期IE限制4GB) 服务器限制&a…...

数据的获取与读取篇---常见的数据格式JSON

文件格式 假如你有一份想分析的数据文件,获得文件后下一步就是用代码读取它。不同的文件格式有不同的读取方法。所以读取前了解文件格式也很重要。你可能见过非常多的文件格式,例如TXT、MP3、PDF、JPEG等等。 一般可以通过文件的后缀来分辨文件的格式,例如TXT格式,一般保存…...

【python代码】一些小实验

目录 1. 测试Resnet50 ONNX模型的推理速度 1. 测试Resnet50 ONNX模型的推理速度 ############################### # 导出resnet50 模型 # 测试onnx模型推理 cpu 和 GPU 的对比 ###############################import time import numpy as np import onnxruntime as ort im…...

Linux服务器配置深度学习环境(Pytorch+Anaconda极简版)

前言: 最近做横向需要使用实验室服务器跑模型,之前用师兄的账号登录服务器跑yolo,3张3090一轮14秒,我本地一张4080laptop要40秒,效率还是快很多,(这么算一张4080桌面版居然算力能比肩3090&#…...

Vue-创建应用/挂载应用/根组件模版-.vue单文件/应用配置

目录 应用实例 根组件 挂载应用 容器元素自己将不会被视为应用的一部分 那为什么还要在被挂载标签里面写东西呢? .mount( ) 方法应该始终在整个应用配置和资源注册完成后被调用 什么是资源注册? 什么是应用实例? 什么是根实例&#…...

超低延迟音视频直播技术的未来发展与创新

引言 音视频直播技术正在深刻改变着我们的生活和工作方式,尤其是在教育、医疗、安防、娱乐等行业。无论是全球性的体育赛事、远程医疗、在线教育,还是智慧安防、智能家居等应用场景,都离不开音视频技术的支持。为了应对越来越高的需求&#x…...

虚拟文件(VFS)

核心知识点:虚拟文件系统(VFS) 1. 通俗易懂的解释 想象一下你家里的冰箱。你把食物放进去,不用管它是放在塑料盒里、玻璃罐里还是直接用保鲜膜包着,你只需要知道它在冰箱的哪个位置(比如“蔬菜抽屉里”&a…...

Java 内存模型(JMM)深度解析:理解多线程内存可见性问题

Java 内存模型(JMM)深度解析:理解多线程内存可见性问题 在 Java 编程中,多线程的运用能够显著提升程序的执行效率,但与此同时,多线程环境下的一些问题也逐渐凸显。其中,内存可见性问题是一个关…...

转移dp简单数学数论

1.转移dp问题 昨天的练习赛上有一个很好玩的起终点问题,第一时间给出bfs的写法。 但是写到后面发现不行,还得是的dp转移的写法才能完美的解决这道题目。 每个格子可以经过可以不经过,因此它的状态空间是2^(n*m)&…...