“VBA代码解决方案”这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高教程,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第一讲:什么是VBA,VBA可以做什么,VBA面向人员。

怎么把vba与工作更好结合(VBA可以做什么VBA面向受众)(1)

第一讲 什么是VBA,VBA可以做什么,VBA面向人员

很多人在做数据处理的时候,都在用函数,相信很多的朋友通过函数的学习也收获很多,可以解决工作中的很多问题。今天开始将带大家详细地理解VBA,让大家在实际的工作中,能对数据处理的效率和准确性上更上一层楼。那么,VBA到底是什么?可以解决什么问题呢?都面向哪些人群呢?下面就讲这些问题。

1 VBA是什么

VBA是Visual Basic for Application的缩写,通俗说就是用VB对程序进行控制,使用户自行定义属于自己需求的软件成为可能性。它主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。也可说是一种应用程序视觉化的Basic 脚本。该语言于1993年由微软公司开发,实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的EXCEL5.0版本中,即具备了VBA的功能。

上面谈到VBA是寄生于VB的,那么两者有什么区别呢?

1) VB设计用于创建标准的应用程序,而VBA是使用已用的应用程序,如EXCEL实现自动化。

2) VB具有自己的开发环境,而VBA必须寄生于已用的应用程序上。

3) 要运行VBA开发的应用程序,必须依赖它的父应用程序。

尽管存在这些不同,VB和VBA在结构上仍然十分相似,事实上,如果你已经了解了VB,会发现学习VBA非常快,相应的,学完VBA会给学习VB打下坚实的基础。

综上,VBA就是可以使现有的应用程序实现自动化的手段,并可以通过自定义的方法创建你需要的问题解决方案。

2 VBA都可以用来做什么

也不用再讲更多的高大上的条条框框,对于职场中的你我,主要可以实现如下的作用:

1) 自动化实现复杂的数据处理,下面还是以一个批量查找的程序为例:下面的程序实现了批量的不同工作表的查找。

Sub mynz_1() '第一讲, 什么是VBA,用VBA可以做什么,VBA面向哪些人群

Sheets("1").Select

i = 2

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

Cells(i, 1).Select

TT = Cells(i, 1)

Cells(i, 2) = ""

Set FJX = Sheets("A").Range("A1:A" & Sheets("A").Range("A1").End(xlDown).Row).Find(TT, after:=[A1], LookAt:=xlWhole)

If Not FJX Is Nothing Then Cells(i, 2) = Sheets("A").Cells(FJX.Row, 2)

Set FJX = Sheets("B").Range("A1:A" & Sheets("B").Range("A1").End(xlDown).Row).Find(TT, after:=[A1], LookAt:=xlWhole)

If Not FJX Is Nothing Then Cells(i, 2) = Sheets("B").Cells(FJX.Row, 2)

Set FJX = Sheets("C").Range("A1:A" & Sheets("C").Range("A1").End(xlDown).Row).Find(TT, after:=[A1], LookAt:=xlWhole)

If Not FJX Is Nothing Then Cells(i, 2) = Sheets("C").Cells(FJX.Row, 2)

Set FJX = Sheets("D").Range("A1:A" & Sheets("D").Range("A1").End(xlDown).Row).Find(TT, after:=[A1], LookAt:=xlWhole)

If Not FJX Is Nothing Then Cells(i, 2) = Sheets("D").Cells(FJX.Row, 2)

i = i 1

Set FJX = Nothing

Loop

End Sub

代码窗口:

怎么把vba与工作更好结合(VBA可以做什么VBA面向受众)(2)

2) 与数据库建立连接实现查、删、改、增等基础sql操作,以及事件调用、数据表创建等复杂操作。

关于数据库相连接的问题,我将在《VBA数据库解决方案》中详细的讲解,很多代码可以作为是通用代码的。

3) 制作窗体实现交互,人机的对话。

这个阶段是建立在1,2基础上的,其实,VBA的窗体设计不是很完美,不如VB,我建议大家可以把EXCEL作为一个开发的平台来对应,这种思路更能体现VBA的价值,在EXCEL中有大量的工作表可以利用。

3 哪些人员需要VBA

这也就是我要讲VBA面向的对象,你不必是专业的程序员,其实专业的程序员不一定能写出与实际工作结合完美的程序。只要你多来我的这个平台,每天学点,每天学点,日积月累肯定会有回报,放正心态,宿值得本,收获也会多多。

1)统计工作

这类工作的特点:劳动强度大,重复性高的工作,而且没有什么技术含量,比如月报,周报等。这类完全可以用VBA来解决。开发一个很小的程序,你的月报表,周报表可以在几秒钟内完成,只要基础数据正确,那么这类报表不存在错误的问题,可以给统计人员节省大量的时间。

2)细致的管理工作

这类工作的特点是基础数据庞大,要多么精细就可以做到多么精细。如采购的安排,可以以周为单位,也可以以天为单位,还可以以0.5天为单位;生产环节的控制,可以控制到每个批次,每批产品,每个机床;销售进度的控制,可以控制每笔发货,每笔订单的进度等等。

当你利用了VBA,一些问题,特别是数据的问题,都将不再是问题。

今日内容回向:

1 简单的说,什么是VBA?

2 VBA可以做什么工作?

3 VBA 面向哪些人群?

本讲内容参考程序文件:VBA代码解决方案修订(1-48).xlsm

怎么把vba与工作更好结合(VBA可以做什么VBA面向受众)(3)

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

第7套教程(共三册):《VBA之EXCEL应用》:是对VBA基本的讲解

第1套教程(共三册):《VBA代码解决方案》:是入门后的提高教程

第4套教程(16G):VBA代码解决方案之视频(第一套的视频讲解)

第3套教程(共两册):《VBA数组与字典解决方案》:是对数组和字典的专题讲解

第2套教程(共两册):《VBA数据库解决方案》:是对数据库的专题讲解

第6套教程(共两册):《VBA信息获取与处理》:讲解VBA的网络及跨程序应用

第5套教程(共两册):VBA中类的解读和利用:类及接口技术的讲解

第8套教程(共三册):VBA之Word应用(最新教程):word中VBA的利用

上述教程的学习顺序:

① 7→1→3→2→6→5或者7→4→3→2→6→5。

② 7→8

,