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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java基础三:Java 核心技术[通俗易懂]

    Java基础三:Java 核心技术[通俗易懂]目录3.Java核心技术3.1.反射机制3.2.异常3.3.多线程3.4.文件与I\O流3.Java核心技术3.1.反射机制JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。3.1.1.静态编译和动态编译静态编译:在编译时确定类型,绑定对象 动态编译:运行时确定类型,绑定对象3

  • NOIPD2T2 – 宝藏 题解

    NOIPD2T2 – 宝藏 题解

  • 微信公众平台接口调试工具

    微信公众平台接口调试工具微信公众平台为公众号开发者提供了网页版的接口调试工具,开发者可以直接在网页中调用对应的接口,比如获取access_token接口,创建菜单接口,发送消息接口等等。 先看一下界面,访问:http://mp.weixin.qq.com/debug/可以看到如下界面: 一、接口类型:因为微信公众号接口比较多,所以这里进行了分类,包括:基础支持、向用户发送消息、用户管理、自定义…

  • 迭代与递归的区别「建议收藏」

    迭代与递归的区别「建议收藏」迭代和递归的区别:从“编程之美”的角度看,可以借用一句非常经典的话:“迭代是人,递归是神!”来从宏观上对二者进行把握。递归:重复调用函数自身实现循环称为递归;    递归实际上不断地深层调用函数,直到函数有返回才会逐层的返回,递归是用栈机制实现的,每深入一层,都要占去一块栈数据区域,因此,递归涉及到运行时的堆栈开销(参数必须压入堆栈保存,直到该层函数调用返回为止),所以有可能导致堆…

  • python 读json_python json文件

    python 读json_python json文件python中和json读写相关的主要是json模块的以下四个函数dumps()将一个python对象编码为json对象 loads()讲一个json对象解析为python对象 dump()将python对象写入文件 load()从文件中读取json数据1、dumps()和loads()主要用于Python和json对象的相互转化。importjsonprices…

    2022年10月12日
  • 安装cocoapods遇到error: RPC failed; curl 56 SSLRead() return error -36问题

    安装cocoapods遇到error: RPC failed; curl 56 SSLRead() return error -36问题

发表回复

您的电子邮箱地址不会被公开。

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