学习VBA

VBA 就是 (Visual basic for Application) 用的比较多的是在Excel中处理数据,可以方便快捷地使用编程方式来对数据进行操作。

VBA 数据类型

Integer

    Public Sub fun()
Dim num As Integer, total As Integer ' 九九乘法表 For i = 1 To 9
For j = 1 To i
Debug.Print i & " * " & j & " = " & (i * j)
Next j
Next i
End Sub

Boolean

    Dim isExists As Boolean
isExists = False
isExists = True

Single

Single主要是表示小数,而Integer这个表示整数,Double比Single表示更长,在一些高级语言中,Single也是表示float类型。但是在VBA中没有float类型。

    Dim agePrecent As Single
agePrecent = 12.6

Double

    Dim agePrecent As Double
agePrecent = 12.6

String

String也是一个基本类型

    Dim userName As String
userName = "Xiao ming"
If userName <> empty or userName <> "" Then
'TODO
ElseIf userName <> "Xiao ming" Then
'TODO
Else
MsgBox "你是" & userName
End If

我们可以发现,基本类型都是用 变量名 = 值;但是如果是对象,我们就需要用到 Set关键字。Set 变量名 = 值。我们在连接字符串或者说是字符串拼接的时候,我们用 & 进行拼接。

Object

对象类型,对象类型的赋值,需要使用set进行。

    Dim dic As Object
Set dic = CreateObject("scripting.dictionary") '创建一个字典 dic.Exists(key) ' 键是否存在
dic.Item(key) '通过键读取某个值
dic.Keys() '获取所有的键
dic.Items() '获取所有的值
dic.Add key,value ' 添加键值

  在Office中我们使用开发工具进行编码,添加模块的时候,有一个模块和类模块的区分。所谓模块,我们可以认为是一个公共接口,只要里面定义的方法是Public的,那么其他任何地方都可以调用。如果我们定义的是类模块,那么他就应该具有类的特性,需要创建实例才能用。

Array

VBA中没有一个类型来定义数组,但是数组使用也是比较广泛。值得注意的是,和其他编程语言不一样,在VBA中数组起始的索引号是从1开始的。

    Dim arr (1 To 10) As Integer ' 一维数组
Dim index As Integer
For index = 1 to 10
arr(index) = index
Next index Dim arr(1 To 2, 1 To 5) As String ' 定义二维数组 ' 定义一个函数,返回类型为数字类型,统计数组长度。
Public Function Len(ByVal arr) As Integer
Len = UBound(arr) - LBound(arr) + 1
End Function

Variant

可变类型,所谓可变类型,就是我们可以定义其为任意类型,类似JavaScript中的Var

函数

无返回类型的函数

我们在定义无返回类型的函数的时候,通常用Sub关键字,但是我们可以用使用Function这个关键字的。Function是用于有返回类型的函数中。函数的定义:访问级别 函数类别 函数名([params] parameters)

    Public Sub Test1()
Debug.Print "Test"
End Sub '上面的函数也可以修改为
Public Function Test1()
Debug.Print "Test"
End Function Private Sub Cal(num As Integer, num2 As Integer)
Debug.Print (num * num2)
End Sub ' 调用方法
Call Cal(12, 13)
' 或者
Cal 12, 13
' 调用无参的函数就不能省略Call关键字
Call Test1()

有返回类型的函数

定义有返回值的函数,我们必须使用Function关键字,我们将结果赋值给函数名,如果是返回的对象,不要忘记使用Set关键字。

    Public Function Add(a1 As Integer, a2 As Integer) As Integer
Add = (a1 + a2)
End Function ' 创建一个字典
Public Function CreateDic() As Object
Set CreateDic = CreateObject("scripting.dictionary")
End Function ' 调用
Dim resVal As Integer
resVal = Add 13,13
Debug.Print resVal Dim dic As Object
Set dic = CreateDic()

学习VBA的更多相关文章

  1. Excel学习——VBA学习(一)

    (一)什么是VBA?什么是宏? VBA (Visual Basic For Application)是一种编程语言,是建立在Office中的一种应用程序开发工具.可以利用VBA有效地扩展Excel的功 ...

  2. VBA学习思路

    打算花两三天学习VBA的基础,学习资料为<别怕,VBA其实很简单>,为了快速学习,先了解大致框架,后续再深入学习各种属性.方法和技巧. 1.VBA编程环境基本操作,手工操作,熟悉即可 2. ...

  3. VBA学习之关于数据透视表的应用

    工作中很多地方需要同时处理多个数据表,而且用数据透视表进行排版,排序,计算字段,一个一个的做非常累,这里给出批量处理的方法. 学习VBA之前最好懂一点点VB的基础知识,因为里面的很多语法问题都是由VB ...

  4. VBA 开发学习--基础语法

    MsgBox "开始学习VBA" '提示框 Dim str As String '声明str变量是string类型 Let str = "一起来看流星雨" '给 ...

  5. VBA学习笔记

    这是一个学习VBA编程的学习笔记. 一. 介绍 二. 使用手册 2.1. 如何在Excel2010中开始使用VBA? 2.2. 如何使用VBA编辑器进行编程? 三. 语法说明 3.1 数据类型 3.2 ...

  6. VBA 格式化字符串 - Format大全

    VBA 格式化字符串 VBA 的 Format 函数与工作表函数 TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的 Format 函数,而不能用于工作表函数 TEXT ,以下是本人归 ...

  7. 来吧!带你玩转 Excel VBA

    来吧!带你玩转 Excel VBA 从错失良机到艰辛的DOS征程,从坎坷购机自学路到转机起程,从爱好到事业,他从一个完全不懂电脑的人到VBA高级应用者,一切全是自学…… 我是罗刚君,来自四川的一个小县 ...

  8. 浅谈VBA

    VBA,全称Visual Basic for Applications,其中的一些专业性的解释可以自行搜索,这里就不一一介绍.半年以前,我是不知道VBA的,当我听到VBA的时候,我却迷糊了.VBA是什 ...

  9. vba编程基础2

    安装office2010的时候, 最好是 完全安装/完整安装 , 这样可以查阅 excel的 "帮助文档" 帮助文档中包含了更多的/更详细的 参考信息. 普通模块无事件, 只有 子 ...

随机推荐

  1. Node开发知识概括

    一. javascript高级话题(面向对象,作用域,闭包,设计模式等) 1. 常用js类定义的方法有哪些? 参考答案:主要有构造函数原型和对象创建两种方法.原型法是通用老方法,对象创建是ES5推荐使 ...

  2. SpringBoot第二十四篇:应用监控之Admin

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11457867.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   前一章(S ...

  3. javascript简单实现深浅拷贝

    深浅拷贝知识在我们的日常开发中还算是用的比较多,但是之前的状态一直都是只曾听闻,未曾使用(其实用了只是自己没有意识到),所以今天来跟大家聊一聊js的深浅拷贝: 首先我们来了解一下javascript的 ...

  4. 深入理解 Handler 消息机制

    记得很多年前的一次面试中,面试官问了这么一个问题,你在项目中一般如何实现线程切换? 他的本意应该是考察 RxJava 的使用,只是我的答案是 Handler,他也就没有再追问下去了.在早期 Andro ...

  5. c# autofac结合WebApi的使用

    一.下载相关类库引用 install-package Autofac install-package Autofac.Mvc4 install-package Autofac.WebApi2 二.配置 ...

  6. ZKW线段树 非递归版本的线段树

    学习和参考 下面是支持区间修改和区间查询的zkw线段树模板,先记下来. #include <algorithm> #include <iterator> #include &l ...

  7. atcoder C - Snuke and Spells(模拟+思维)

    题目链接:http://agc017.contest.atcoder.jp/tasks/agc017_c 题解:就是简单的模拟一下就行.看一下代码就能理解 #include <iostream& ...

  8. VS2017 之 MYSQL实体数据模

    Photon Server 和 Unity3D 数据交互: Photon Server 服务端编程 Unity3D 客户端编程 VS2017 之 MYSQL实体数据模 一.新建数据库连接后,点击下一步 ...

  9. WebStorm调节控制台字体

    File --> Settings --> Editor --> Colors & Fonts --> Console Font

  10. 实时统计每天pv,uv的sparkStreaming结合redis结果存入mysql供前端展示

    最近有个需求,实时统计pv,uv,结果按照date,hour,pv,uv来展示,按天统计,第二天重新统计,当然了实际还需要按照类型字段分类统计pv,uv,比如按照date,hour,pv,uv,typ ...