当前位置:网站首页 > Haskell函数式编程 > 正文

vb中的方法的解释(vb的方法和函数有什么不同)



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

教程共两册,二十个专题。今日分享内容是:VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_数据

【分享成果,随喜正能量】人这一辈子,无非就四个字:钱、命、家、情。钱是什么?

钱是生活不可或缺的一部分,有钱走遍天下,没钱寸步难行。虽然钱不是万能的,但是没有钱是万万不能的。。

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

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_VBA_02

工作表单元格数据和VBA变量之间的数据传输是经常要应用的操作,这项操作占用的时间要比其他操作占用的时间要多,所以我们的原则是应将这种操作保持在最低的次数。通过一次操作(而不是一次单元格的操作)将数据传递给数组,或者将数组数据传递给工作表,这样可以大大提高Excel应用程序的性能。一般的原则是:如果需要对VBA中的数据进行大量计算,则应将工作表中的所有值传输到数组中,对数组进行计算,然后再将可能利用的数组数据回填到工作表。这样的操作可以将工作表和VBA之间传输数据的次数保持在最小值。例如将100个数组数据一次传输到工作表比传输100次,每次传输一个数据值的效率要高得多。

我们在VBA中处理数据时,一般有三种方案可以选择和利用,一是数组存储数据,二是字典存储数据,第三是不在内存中处理,直接在工作表中读取和处理。

我们先来讲解上面的第一种方案,将工作表数据存储在数组中然后在内存中处理数据的方案为了验证处理的效果我们在工作表中给出了2000个数据然后先将这些数据读到数组中再在数组中求和计算我们看下面的代码

Sub MYNZ() '数组求和

t = Timer

Sheets("SHEET1").Select

Dim Arr() As Variant

Arr = Range("A1:A2000")

MYSUM = 0

For R = 1 To UBound(Arr, 1)

MYSUM = MYSUM + Arr(R, 1)

Next

t2 = Timer - t

MsgBox "总和为:" & MYSUM & Chr(13) & "运行时间:" & Format(t2, "0.00000") & "秒"

End Sub

代码截图

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_数据_03

这些代码对于中级以上的朋友是非常容易理解的只是思路的问题代码就不再讲解

看看下面的运行结果:

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_数组_04

运行结果

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_VBA_05

我们来讲解上面的第种方案,将工作表数据存储在字典然后在内存中处理数据的方案为了验证处理的效果我们同样在工作表中给出了同样的2000个数据然后先将这些数据读到字典再在求和计算我们看下面的代码

Sub MYNZA() '字典求和

t = Timer

Sheets("SHEET1").Select

Dim Arr() As Variant

Arr = Range("A1:A2000")

Set myDic = CreateObject("scripting.dictionary")

For i = 1 To UBound(Arr)

myDic(i) = Arr(i, 1) '初始化字典

MYSUM = MYSUM + myDic(i)

Next i

t2 = Timer - t

MsgBox "总和为:" & MYSUM & Chr(13) & "运行时间:" & Format(t2, "0.00000") & "秒"

End Sub

代码的截图

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_数组_06

代码的运行结果

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_VBA_07

最后我们来讲解上面的第种方案,直接在工作表中处理数据,为了验证处理的效果我们同样在工作表中给出了同样的2000个数据然后直接在工作表中对这些数据求和处理我们看下面的代码

Sub MYNZB() '工作表求和

t = Timer

i = 1

Sheets("SHEET1").Select

MYSUM = 0

Do While Cells(i, 1) <> ""

MYSUM = MYSUM + Cells(i, 1)

i = i + 1

Loop

t2 = Timer - t

MsgBox "总和为:" & MYSUM & Chr(13) & "运行时间:" & Format(t2, "0.00000") & "秒"

End Sub

代码截图

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_VBA_08

代码的运行

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_数组_09

我们看看数据的运行结果可以看出运行的效率但要提醒大家注意

① 不要一味的追求的效率,注意理解我的一篇文章《VBA程序的运行时间优化和视觉效果的兼顾》。

② 每种方案都有自己的可利用价值,比如字典的排重是非常有效的手段。

本节知识点回向:实现数据在工作表和VBA之间的传输有哪些方案?各是什么?注意根据自己的经验理解每种方案的优缺点。

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

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

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_数据_10

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_VBA_11

VBA信息获取与处理第四个专题第一节:工作表数据和数组之间的传输比较_VBA_12

到此这篇vb中的方法的解释(vb的方法和函数有什么不同)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • yml文件格式(yaml文件格式检查)2026-03-06 20:54:16
  • 打开目录的命令(打开目录文件的函数)2026-03-06 20:54:16
  • conv函数用法(conv_m函数)2026-03-06 20:54:16
  • mysql窗口函数执行顺序(mysql5实现窗口函数)2026-03-06 20:54:16
  • 编程入门基础知识讲解(编程入门基础知识讲解图片)2026-03-06 20:54:16
  • 生成范围内的随机整数(随机生成一个范围内的数的函数)2026-03-06 20:54:16
  • 密码的加密与解密的方式(密码的加密与解密的方式不包括)2026-03-06 20:54:16
  • 字符串转码技术介绍(字符串转换编码格式)2026-03-06 20:54:16
  • redis哨兵模式连接命令(redis哨兵模式连接命令是什么)2026-03-06 20:54:16
  • max的函数功能是什么(max函数有什么用)2026-03-06 20:54:16
  • 全屏图片