3.3.1 VBA代码程序运行时间的优化与视觉效果的兼顾

【分享成果,随喜正能量】生如逆旅,一苇以航,别不好意思拒绝别人,他都好意思为难你,你又在拿捏什么。如果有人跟你说这不是钱的事,那就是钱不够的事,别高估关系,别试探人心。。

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的劳动效率,而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册,现在已经全部完成,希望大家利用、学习。

如果您只是一般的职场VBA需求,可以打包选择7.1.3.9教程+汉英手册,第7套教程是入门,第1套教程是入门后的提高,第3套教程字典是必备的VBA之精华,第9套教程是实用的典型案例讲解。这四套教程内容掌握后足以处理一般工作中的问题,实际写代码的时候再辅助代码汉英手册,足矣!如果您想进一步提高,就需要选择高级阶段的教程了。

VBA是面向对象编程的语言,博大精深。很多朋友咨询VBA的学习方法,我会陆续给大家讲解一些我的经验,大家可以慢慢体会。今日的内容是:3.3.1 VBA代码程序运行时间的优化与视觉效果的兼顾3.3.1 VBA代码程序运行时间的优化与视觉效果的兼顾_第1张图片

3.3 学习提高过程中的思考(贯彻我的编程思想)

在学习过程中,我们要同时思考几个问题,这也是我们学习过程中的提高。

3.3.1 VBA代码程序运行时间的优化与视觉效果的兼顾

在《VBA代码解决方案》第二册的85讲到89讲,我讲了程序优化的问题,其实在这些章节中,我也一直在讲视觉和程序运行时间的兼顾问题。我在做程序的时候,往往注重的是前者,而不是后者,为什么呢?其实VBA带给我们的就是实用,真正要求做到节约时间往往是那些大型程序考虑的范畴。正如我在讲到VBA地位时的比喻,那些大型程序是城市与城市之间的高铁啊、火车啊、飞机啊,而VBA只是连接车站到家之间的汽车、电动车,当你考虑大型数据处理时最好要借助大型程序,如Python、PHP、GO、JAVA等等,从严格意义上讲,VBA不能称之为一种独立的语言体系,只是寄生于OFFICE的一条寄生虫,但你不要小看它,这部分交通运行不顺畅,也会引起城市的拥堵,工作效率的低下。所以,我们在工作中主要考虑的是视觉的效果,其次才是时间的节约。如何做到视觉的愉悦呢?下面我就来就一段实际的程序和大家分享。今天的程序读者也可以作为一个工具利用。

需求:建立一个工作薄1,写入代码,代码执行首先打开另外一个指定工作薄2,把其中工作表sheet1中A,B列的内容写入数组,然后关闭工作薄2,回到工作薄1,把数组数据保存到工作表1的CD列中。

这个案例在实际工作中会经常用到,或者类似的应用非常多,大家可以记住下面的代码。

要利用到的知识点:

1 工作薄的打开;

2 数据写入数组;

3 数组数据的导出。

今天我利用到了《方案》第三册第113讲的内容,将一个工作薄中工作表的数据写入数组,然后导出,看下面的代码截图:

3.3.1 VBA代码程序运行时间的优化与视觉效果的兼顾_第2张图片

代码:

Sub mynzkk()

    Dim a(5000, 2)

    Workbooks.Open Filename:=ThisWorkbook.Path & "\工作表.xlsx" '打开一个指定存储数据的工作薄

    Workbooks("工作表.xlsx").Activate '让数据的工作表处在激活状态

    MsgBox ("数据已经打开,是否继续?") '判断是否继续

    Sheets("SHEET1").Select

    k = 0

    i = 1

    '数组,并赋值

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

        k = k + 1

        Cells(i, 1).Select

        a(k, 1) = Cells(i, 1) '写入数组

        a(k, 2) = Cells(i, 2)

        i = i + 1

    Loop

    Workbooks("工作表.xlsx").Close '关闭数据工作薄

    Workbooks("工作簿1.xlsm").Activate '让主程序的工作薄处在激活状态

    Sheets("SHEET1").Select

    [C1:D65536].Clear '清除原有数据

    MsgBox ("下面将写入数据,请确认!")

    For i = 1 To k

        Cells(i, 3).Select

        Cells(i, 3) = a(i, 1)

        Cells(i, 4) = a(i, 2)

    Next

    MsgBox ("OK!")

End Sub

代码讲解:上述代码中,为了照顾到视觉,我加了四条语句如下所示:

3.3.1 VBA代码程序运行时间的优化与视觉效果的兼顾_第3张图片

目的:

1 让程序的运行可视,操作者可以随时知道程序运行到了哪里。

2 让应用这个程序的人有个主动的感觉,好像是自己在操控着程序的运行。这也是从心理上来取悦程序的使用者。其实不加这些都是可以的。

程序文件:

Ø时间与视觉.xlsm

3.3.1 VBA代码程序运行时间的优化与视觉效果的兼顾_第4张图片

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


3.3.1 VBA代码程序运行时间的优化与视觉效果的兼顾_第5张图片

你可能感兴趣的:(VBA,OFFICE,开发语言)