Excel中VBA编程学习笔记(一)「建议收藏」

Excel中VBA编程学习笔记(一)「建议收藏」1、注释及编码规则注释:单引号:可以位于句子结尾或者单独一行; Rem:单独一行 编码规则:如果VB中的关键字是由多个英文字母组成,则系统自动将每个单词的首字母转换成大写字母,其余字母一律转换成小写字母。 对于用户自定义的变量名、过程名、函数名,VB以第一次定义的为准,以后输入的自动转换成首次的形式。 如果在同一行写多条语句,语句间要用冒号“:”隔开。例如:Form1…

大家好,又见面了,我是你们的朋友全栈君。

1、注释及编码规则

注释:

  1. 单引号:可以位于句子结尾或者单独一行;
  2. Rem:单独一行

 

编码规则:

  1. 如果VB中的关键字是由多个英文字母组成,则系统自动将每个单词的首字母转换成大写字母,其余字母一律转换成小写字母。
  2. 对于用户自定义的变量名、过程名、函数名,VB以第一次定义的为准,以后输入的自动转换成首次的形式。
  3. 如果在同一行写多条语句,语句 间 要用冒号“:”隔开。例如:

Form1.Width  =  300 :  Form1.Caption = “VB!”

  1. 如果一条语句在一行写不下,可以分多行写,续航符为:一个空格后面跟一个下划线“_”。

例如:Address = “天津市河北工业大学”  +  _

                     “现代化教学中心”  +  _

                              “计算机技术基础教研室”

 

2、类模块

在Excel VBA中类模块就相当于一个类,类模块的名字就是类名。

下面为定义的一个类Class1,并且有些基本属性及一个初始化函数

 

Excel中VBA编程学习笔记(一)「建议收藏」【例】

下面定义一个类Class1,

Private name, sex As String

Private age As Integer

Public rng As Range

Sub class_initialize()  ‘初始化

    sex = “男”

    age = 20

End Sub

Public Property Get GetName() As Variant

    GetName = name

End Property

 

Public Property Get GetSex() As Variant

    GetSex = sex

End Property

Public Property Get GetAge() As Integer

    GetAge = age

End Property

 

Public Property Let SetName(newName As String)

    name = newName

End Property

 

Public Property Let SetSex(newSex As String)

    sex = newSex

End Property

 

Public Property Let SetAge(newAge As Integer)

    age = newAge

End Property

 

Public Function GetInfo() As String

    GetInfo = “姓名:” & name & “;性别:” & sex & “;年龄:” & age

End Function

 

Public Property Get maxNumer(num As Integer) As Integer

    maxNumber = Application.WorksheetFunction.Max(num, age)

End Property

 

Public Property Set SetBckColor(myRng As Range)

    myRng.Interior.ColorIndex = 3

End Property

 

新建一个过程

Sub test()

   Set tmp = New Class1

   Debug.Print tmp.GetAge() ’20

   tmp.SetName = “张三”

   tmp.SetAge = 23

   Debug.Print tmp.GetInfo()    ‘姓名:张三;性别:男;年龄:23

   Set tmp.SetBckColor = Sheet3.Rows(1)         ‘将Sheet3的第一行背景色设置为红色

End Sub                     

3、新建对象及常用对象

新建一个模块。

Option Explicit

Sub a()

Dim ab As New Class1

Debug.Print ab.x

End Sub

不能使用NEW创建的对象

不能使用NEW创建

不允许的代码例子

基本数据类型的变量

Dim X As New String

任何一般对象类型的变量

Dim X As New Control

任何特定控件类型的变量

Dim X As New ListBox

任何特定控件的变量

Dim X As New lstName

常用对象

对象名称

代表事项

Application对象

代表整个Excel应用程序

Debug对象

在运行时将输出发送到立即窗口

Name对象

代表单元格区域的定义名称

Dialog对象

代表内置的Excel对话框

Range集合对象

代表某一单元格、某一行、某一列、某一选定区域

Window对象

代表一个窗口

Windows集合对象

代表Excel中所有Window对象的集合

Chart对象

工作薄中的图标

Charts集合对象

指定的或者活动的工作薄中所有的图表的集合

Sheets集合对象

指定或活动工作薄中所有工作表的集合,Sheets集合可以包括Chart对象或WordSheet对象

WorkBook对象

代表Excel工作薄

WorkSheet对象

代表一张工作表

Shape对象

代表图层中的对象,例如自选图形、任意多边形、OLE对象或图片

AutoFIle对象

代表指定工作表的自动筛选

Filters集合对象

由多个Fileter对象组成的集合,这些对象代表自动筛选区域内的所有的筛选

Filter对象

代表单个列的筛选

4、设置窗体尺寸及位置

以下两种方式均可:

Excel中VBA编程学习笔记(一)「建议收藏」

Excel中VBA编程学习笔记(一)「建议收藏」

5、声明变量及常量

变量声明格式如下:

Dim|Private|Public|Static <变量1> as <类型1> [,<变量2> as <类型2> …..]

关键字

使用范围

Dim

可以用在任何场合定义变量

Private

可以用于定义窗体级或模块级,不能在过程中使用

Public

用于窗体级或者模块级定义全局变量,不能在过程内部使用

Static

只能在过程内部使用,用于定义静态的局部变量

注:没有是上面的关键字来明确的变量叫做隐式变量,系统自动分配的数据类型为Variant,如DaysLeft=100.

 

Private name As String ‘声明全局变量

Private Sub A()

   Dim M As Range ‘声明局部变量

   Set M = Sheet1.Range(“A1”)

   M.Value = InputBox(“请输入:”)

   name = Sheet1.Range(“A1”).Value

   MsgBox (“你输入的内容” & name)

End Sub

 

声明常量

Private Sub A()

   Const pi As Integer = 3.1415926

   Dim area As Double

   area = pi * 2 * 2

   Debug.Print (“面积为:” & area)

End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137700.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 我的博客日记第一天「建议收藏」

    我的博客日记第一天「建议收藏」这是我开通博客的第一天,也是我的第一个博客,

    2022年4月29日
    38
  • javac命令无法使用解决办法

    javac命令无法使用解决办法javac命令无法使用,java环境变量配置。

    2022年5月21日
    38
  • centos7网络设置ipv4_centos7连接wifi详细步骤

    centos7网络设置ipv4_centos7连接wifi详细步骤系统版本centos7.71、ip配置(配置后局域网内可互ping)同网段内设置,不用网关即可通信1、临时设置#设置接口ens33的地址为192.168.59.27ipaddradd192.168.56.27/24devens33#查看接口ens33地址ipaddrshowens332、永久设置进入目录,/etc/sysconfig/network-scripts,修改文件ifcfg-ens33,修改或添加下列几项BOOTPROTO=”none”#

    2022年5月3日
    186
  • java中的next()方法,nextline()方法,hasnext()方法的用法系列(1)。

    java中的next()方法,nextline()方法,hasnext()方法的用法系列(1)。这是王秀秀的第23篇博客????看下方目录next()方法nextline()方法hasnext()方法最近本菜鸡做题呀,遇到了一些很好玩的事情,那就是scanner类中的一些方法,经过了解后,真挺好玩的。next()方法话不多说上代码importjava.util.Scanner;publicclassnext_and_nextline{ publicstaticvoid…

    2022年5月25日
    43
  • DNS+Anycast 均衡负载实战(IPV4)

    DNS+Anycast 均衡负载实战(IPV4)我们建立了一个IP为6.6.6.6内网DNS服务器群,所在网段为10.211.77.0/24,而我们要实现的是在PC端(网段10.211.66.0/24)能ping通6.6.6.6,同时执行命令digwww.baidu.com@6.6.6.6A,能得到文章最开始的dig8.8.8.8类似的返回结果。

    2022年5月23日
    65
  • poe交换机跟普通交换机_交换机可以接交换机吗

    poe交换机跟普通交换机_交换机可以接交换机吗POE也被称为基于局域网的供电系统,有时也被简称为以太网供电,这是利用现存标准以太网传输电缆的同时传送数据和电功率的最新标准规范,并保持了与现存以太网系统和用户的兼容性。那么POE交换机和普通交换机之间存在那些不同呢?1.可靠性不同:POE交换机就是支持对网线供电的交换机,和普通交换机相比就是受电终端(比如AP、数字摄像头等)不用再进行电源布线,对整个网络而言可靠性更高。2.功能不同:POE交换机就是除了能提供普通交换机所具有的传输功能,还能给网线的另一端设备提供供电功能。3.优势不同:POE交换机有很多

    2022年10月5日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号