VBA信息获取与处理第四个专题第二节:将工作表数据写入VBA数组

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。

教程共两册,二十个专题。今日分享内容是:VBA信息获取与处理第四个专题第二节:将工作表数据写入VBA数组2790fabbaa500d19e957f819b631fbcc.jpeg

【分享成果,随喜正能量】得失随缘,心无增减。生活,不论如何都会过去,不会永远甜,也不会永远苦,用一颗随遇而安的心态去生活,该吃饭吃饭,该睡觉睡觉,醒来便是重生。。

专题四 EXCEL工作表数据的读取、回填和查找

这个专题,我们讲解工作表数据的处理的问题,对于VBA而言,我给予的定位是“实现个人小型数据自动化处理的利器”,对于大多数朋友而言,利用VBA是与EXCEL相关联的,很多的代码也是用于处理EXCEL内或者相关的各种数据,工作表更是作为和用户的交互对象而存在,那么对于工作表的数据如何进行查找,以及如何读取就是一个十分关键的课题,我们这讲就来主要讲解这个问题。

ece818ff8da477134239340e426aef1b.jpeg

第二节 将工作表数据写入VBA数组

在上一节中我们讲了实现工作表数据与VBA代码间传输的几种方法,这讲我将我们将着重讲解如何将工作表的数据写入数组。

1 读取工作表上的范围并将其放入数组

在VBA中,可以直接读取工作表上的范围并将其放入数组,这种方法非常简单。例如,

Dim Arr() As Variant

Arr = Range("A1:C5")

上述代码中首先声明一个变体型可变数组变量,然后将这个变量指向指定的区域,如果我们不能确定这个区域的大小,或者这个区域是可变的,我们可以利用下面的语句;

① myarr = Sheets("41").UsedRange

② myarr = Sheets("40").[a1].CurrentRegion

③ myarr = Range("a2:c" & Range("c2").End(xlDown).row)

④ myarr = Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).row)

⑤ myarr = Range("a2:f" & [a65536].End(xlUp).Row)

⑥ myarr1 = Range([A2], [A65536].End(xlUp))

上面的各种写法均是我的第三套教程《VBA数组与字典解决方案》中的一些实际写法,第一种表示整个工作表的使用区域,第二种是以“A1”单元格为起点的矩形区域,第三种是表示A2到C列最后一个不为空的单元格的矩形区域,第四种是表示A列的使用区域(含空格),第五种是A2到F列的最后使用单元格的区域(适用于低版本的excel),第六种是A列第二个单元格之下的使用区域(含空单元格)

2 读取工作表上指定范围获得数组后维数的确认

利用上述方案将工作表中的数据引入VBA数组后,我们要注意该数组始终是二维的。第一个维度是行,第二个维度是列。因此,下面的例子:

Dim Arr() As Variant

Arr = Range("A1:C5")

Arr被隐式地调整为Arr(1 to 5,1 to 3),其中5是行数,3是列数。即使工作表数据位于一行或一列(例如,Arr(1 to 10,1 to 1))中,也会创建二维数组。加载工作表数据的数组始终具有等于1的下限(LBound),而不管模块中可能具有什么选项基指令。你不能改变这种行为。例如:

Dim Arr() As Variant

Arr = Range("A1:A10")

这里,Arr由VBA自动标注为Arr(1 to 10,1 to 1)。您可以使用如下代码在工作表值数组中循环:

Sub MYNZC()

Dim Arr() As Variant

Arr = Range("A1:B10")

Dim R As Long

Dim C As Long

For R = 1 To UBound(Arr, 1) ' 数组第一维表示行.

For C = 1 To UBound(Arr, 2) '数组第二维表示列

Debug.Print Arr(R, C)

Next

Next

End Sub

代码截图:

a147d46cb560199ce8e522df7b900c89.jpeg

代码的运行:

33abaf3c445f7ea2f045ba1b1a7fd574.jpeg

3 工作表上指定范围如果是一个单元格时

代码的运行:

7b7a12c39355f6eb10e21d3ff1d1eb5a.jpeg

上面的代码成功的避免了这种错误。大家在利用这种数组赋值时避免这类错误的发生。

本节知识点回向:读取指定范围的数据到数组有哪些方法可以利用?读取后的数组是几维数组?如何避免指定范围只有一个单元格的情况?

本专题参考程序文件:004工作表.XLSM

我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:

d158988f302d22def1da8be6ab049a4d.jpeg

aada174aaa532a3b5a8454551539e099.jpeg

b7b7bccb1525e432dc96123c449e4dda.jpeg



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/929656.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python通过ODBC连接神通数据库

1、安装神通数据库 2、安装python 3、安装pyodbc pip3 install pyodbc-5.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 注:pyodbc要和python版本相对应 4、安装unixodbc 5、配置神通数据库ODBC数据源 6、示例代码如下 #!/usr/bin/python…

Vue Web开发(一)

1. 环境配置 1.1. 开发工具下载 1.1.1. HbuilderX 官网地址:https://uniapp.dcloud.net.cn/ 1.1.2. Visual Studio Code 官网地址:https://code.visualstudio.com/Download 1.1.3. Node环境 官网地址:https://nodejs.cn/   正常软件安装…

Tomcat新手成长之路:安装部署优化全解析(下)

接上篇《Tomcat新手成长之路:安装部署优化全解析(上)》: link 文章目录 7.应用部署7.1.上下文7.2.启动时进行部署7.3.动态应用部署 8.Tomcat 类加载机制8.1.简介8.2.类加载器定义8.3.XML解析器和 Java 9.JMS监控9.1.简介9.2.启用 JMX 远程监…

模拟实现vector(非常详细)

模拟实现vector 1.vector基本概念2.vector()默认构造函数3.size()成员函数迭代器4.capacity()成员函数5.empty()成员函数6.reverse()成员函数7.push_back()成员函数8.pop_back()成员函数9.operator[ ]成员函数10.resize()成员函数11.insert()成员函数12.erase()成员函数13.swap…

Elastic Cloud Serverless:深入探讨大规模自动扩展和性能压力测试

作者:来自 Elastic David Brimley, Jason Bryan, Gareth Ellis 及 Stewart Miles 深入了解 Elasticsearch Cloud Serverless 如何动态扩展以处理海量数据和复杂查询。我们探索其在实际条件下的性能,深入了解其可靠性、效率和可扩展性。 简介 Elastic Cl…

微信小程序之手机归属地查询

微信小程序之手机归属地查询 需求描述 API申请和小程序设置 API申请 第一步:完整账号注册 我们需要来到如下网站,注册账号:万维易源 第二步:账号注册完成以后,点击右上角的控制台信息。 第三步:在控制…

Agent AI: Surveying the Horizons of Multimodal Interaction---摘要、引言、代理 AI 集成

题目 智能体AI:多模态交互视野的考察 论文地址:https://arxiv.org/abs/2401.03568 图1:可以在不同领域和应用程序中感知和行动的Agent AI系统概述。Agent AI是正在成为通用人工智能(AGI)的一个有前途的途径。Agent AI培训已经证…

分布式光伏电站如何实现监控及集中运维管理?

安科瑞戴婷 Acrel-Fanny 前言 今年以来,在政策利好推动下光伏、风力发电、电化学储能及抽水蓄能等新能源行业发展迅速,装机容量均大幅度增长,新能源发电已经成为新型电力系统重要的组成部分,同时这也导致新型电力系统比传统的电…

SpringMVC其他扩展

一、全局异常处理机制: 1.异常处理两种方式: 开发过程中是不可避免地会出现各种异常情况的,例如网络连接异常、数据格式异常、空指针异常等等。异常的出现可能导致程序的运行出现问题,甚至直接导致程序崩溃。因此,在开发过程中,…

Cesium 6 ,Cesium 全局注册,Cesium 常用事件解析与应用,全局注册Cesium事件

目录 前言 一. 全局注册事件 1.1 事件机制介绍 1.2 this.Cesium 和 this.viewer 1.3 全局注册 二. 常见事件分类 2.1 鼠标事件 2.1.1 点击事件 (click) 2.1.2 双击事件 (doubleClick) 2.1.3 鼠标移动事件 (mouseMove) 2.1.4 鼠标滚轮事件 (mouseWheel) 2.2 视图与摄…

matlab2024a安装

1.开始安装 2.点击安装 3.选择安装密钥 4.接受条款 5.安装密钥 21471-07182-41807-00726-32378-34241-61866-60308-44209-03650-51035-48216-24734-36781-57695-35731-64525-44540-57877-31100-06573-50736-60034-42697-39512-63953 6 7.选择许可证文件 8.找许可证文件 9.选…

在玩“吃鸡”的时候游戏崩溃要如何解决?游戏运行时崩溃是什么原因?

“吃鸡”游戏崩溃问题深度解析与解决方案:原因、修复与预防 在紧张刺激的“吃鸡”(即《绝地求生》)游戏中,突然遭遇游戏崩溃无疑会让玩家倍感沮丧。作为一名经验丰富的软件开发从业者,我深知游戏崩溃可能由多种因素引…

学习threejs,通过设置纹理属性来修改纹理贴图的位置和大小

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️Texture 贴图 二、&#x1…

【开源安全保护】如何安装JumpServer堡垒机

【开源安全保护】如何安装JumpServer堡垒机 什么是堡垒机 大家好,我是星哥,今天我以前来认识堡垒机 堡垒机(Bastion Host),也称为跳板机(Jump Server),是指在计算机网络中&#x…

JSP知识点总结

jsp九大对象 在jsp中内置了9个对象,无需创建该对象即可使用。其名称为固定名称。 1.out输出对象 - 属于JspWriter print(): 输出 flush(): 刷新 close(): 关闭 2.request请求对象 - 属于HttpServletRequest getParameter(): 获取请求的参数 setCharacterEncodin…

微信小程序全屏显示地图

微信小程序在界面上显示地图&#xff0c;只需要用map标签 <map longitude"经度度数" latitude"纬度度数"></map>例如北京的经纬度为&#xff1a;116.407004,39.904595 <map class"bgMap" longitude"116.407004" lati…

(软件测试文档大全)测试计划,测试报告,测试方案,压力测试报告,性能测试,等保测评,安全扫描测试,日常运维检查测试,功能测试等全下载

1. 引言 1.1. 编写目的 1.2. 项目背景 1.3. 读者对象 1.4. 参考资料 1.5. 术语与缩略语 2. 测试策略 2.1. 测试完成标准 2.2. 测试类型 2.2.1. 功能测试 2.2.2. 性能测试 2.2.3. 安全性与访问控制测试 2.3. 测试工具 3. 测试技术 4. 测试资源 4.1. 人员安排 4.2. 测试环境 4.2.…

2024 阿里云Debian12.8安装apach2【图文讲解】

1. 更新系统&#xff0c;确保您的系统软件包是最新的 sudo apt update sudo apt upgrade -y 2. 安装 Apache Web 服务器 apt install apache2 -y 3. 安装 PHP 及常用的扩展 apt install php libapache2-mod-php -y apt install php-mysql php-xml php-mbstring php-curl php…

golang实现单例日志对象

原文地址&#xff1a;golang实现单例日志对象 – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 介绍 golang有很多日志包&#xff0c;通过设置和修改都能实现日志轮转和自定义日志格式。例如&#xff1a;log、zap、golog、slog、log4go 等等。 …

git回退到某个版本git checkout和git reset命令的区别

文章目录 1. git checkout <commit>2. git reset --hard <commit>两者的区别总结推荐使用场景* 在使用 Git 回退到某个版本时&#xff0c; git checkout <commit> 和 git reset --hard <commit> 是两种常见的方式&#xff0c;但它们的用途和影响有很…