当前位置:主页 > Office办公

最新发布

excel  vba  指令对象
excel vba 指令对象

至此,我们已经了解了对象、属性和方法的基本概念,认识了Excel的对象模型以及常用的对象在VBA中的表示,以及如何使用对象的属性和方法,这些都是Excel VBA编程最基础的部分。熟悉和了解这些知识,对进一步学习VBA编程很重要。为了进一步巩固已经学习的知识,我们引用Excel先生(Bill Jelen)的著作《VBA and Macros for Microsoft Excel》中的例子,稍作修改,再次形象化地说明相关的概念和表示对象的基础语法结构。假设我们使用VBA来玩足球,那么踢球的指令应该类似下面这样:“Kick the Ball”(中文为:“踢球”)这就是我们平时说话的方式,具有很明确的意义,句子中有动词(Kick)和名词(the Ball)。还记得前面的系列文章中的VBA代码,也有动词(Add)和名词(Worksheets)。虽然说平时我们用于踢球的指令听起来已经很自然,但是VBA代码并不是这样来表示的。如果使用VBA来踢足球,那么基础的语言结构应该是:Ball.Kick这里的名词(Ball),位于最前面,在VBA中,就是对象,也有动词(Kick)紧随在名词之后,在VBA中,就是方法。这也就是VBA中最基础的结构:对象.方法(Object.Method)

一个简单的Excel VBA程序
一个简单的Excel VBA程序

VBA是一种“寄生”在主应用程序(例如Excel)中的语言,正是因为这样的特殊性,所以我们先介绍了与主应用程序相关的对象模型和很多对象,以及如何引用这些对象及其属性和方法。我的思路(当然也是笔者在当初学习Excel VBA时的经难)是,先带领读者认识一些常用的对象及其表示。因为只有你先知道了要使用的对象,才能达到自已的目的。如果你都不知道你要操作什么,空有一番本领,也会感觉一头雾水。既然你现在已经认识了不少的Excel对象,也知道了它们是如何在Excel中表示的,知道了对象的方法和属性的表达方法,那么就可以进入下一步了。下面,我们主要介绍VBA语言本身。与此同时,进一步认识Excel的对象,并一步一步地让你具备开发出满足自已需求的程序的能力。先编写一个非常简单的Excel VBA程序。[复习]准备代码输入环境按Alt+F11组合键,打开VBE编辑器。单击菜单“插入——模块”,插入一个标准模块,VBE会自动命名为“模块1”,如中的箭头所示。在中③所标识的代码编辑窗口中,输入代码。说明:本系列文章中以后所说的输入代码,如无特殊说明,要么是在插入新模块后的代码窗口中输入代码,要么是双击相应的代码模块后在其代码窗口中输入代码。这些细致的差别看似简单,却往往是一些初识VBA的朋友迷惑或者出问题的地方。

excel数据透视表VBA的数据类型
excel数据透视表VBA的数据类型

在Excel中,我们会往工作表中输入数字、日期、文本,有时还会粘贴上图片,这些输入的内容都是数据。我们在Excel中制作了一个学生入学成绩信息的工作表,如下所示。上面有各种各样的信息,都是通过数据来表现这些信息的,例如学生的姓名、入学时间、考试分数、是否合格以及图片,这些都是数据。观察一下中的数据,我们可以将其分一下类:有些数据是数字,例如表示序号的1、2、…和表示分数的83.5、50.3、…等。有些数据是文本,例如表示姓名的张三、李四、…以及表头的标题如序号、姓名、入学时间、…等。有些数据是日期,例如表示入学时间的2011-9-6。有些数据是逻辑值,例如表示是否合格的True和False。在VBA中,数据也会被分成不同的类型,例如:处理数字的整型(Integer型)、长整型(Long型)、单精度浮点型(Single型)、双精度浮点型(Double型)。

excel数据透视表之VBA运算符
excel数据透视表之VBA运算符

还记得小时候学习数学的经历吗?很小很小的时候,我们会接触到数字,大人们会教我们数数,认识简单的数字,慢慢地我们会开始学习简单的加减法,再大一点,会学习乘除法,背诵乘法口诀,随着学习的深入,我们会逐渐学习到更复杂的运算和规则。运算无处不在。在编写程序代码时,很多内容都是在进行各种各样的运算,因此,运算符非常重要。当然,最开始我们都是从了解最基本的运算开始,逐渐深入到更多的运算内容。最先应该了解的当然是加、减、乘、除等算术运算符。算术运算符常用的VBA算术运算符有:加(+)、减(-)、乘(*)、除(/)、整除(\)、取模(MOD)、求幂(^)。基本的运算如下所示。说明:对于除法(/)运算符:假设z=x/y,如果将z声明为整型数,则结果为4,即直接舍弃掉小数位;如果将z声明为Single型或Double型,则结果为4.5。整除(\)运算符,即在除法运算中,结果直接取商,而不管余数。取模(MOD)运算符,即在除法运算中,结果取余数。

excel图表有条件的循环(1)—Do While循环
excel图表有条件的循环(1)—Do While循环

在上一篇文章中,我们介绍的For-Next循环,能够按照指定的数值进行有限次的循环。下面介绍在满足指定的条件时才执行相应代码块的循环结构,先来看看Do While循环。按照惯例,先举一个例子。下面的代码从当前单元格开始,逐行显示单元格的内容,直到碰到空单元格为止。如果第一个单元格就为空,则不会执行循环。Sub DoWhile0()Dim i As Integer ‘声明变量i = 1 ‘初始化变量Do While Cells(i, 1).Value <> “”MsgBox “单元格A” & i & “的内容为:” & Cells(i, 1).Valuei = i + 1LoopEnd Sub

excel图表有条件的循环设置
excel图表有条件的循环设置

下面继续介绍在满足指定的条件时才执行相应代码块的循环结构,接着来看看Do Until循环。Do Until循环与Do While循环的结构相似,最本质的区别在于循环条件的判断。顾名思义,在Do While循环中,当条件为真(True)时,就执行循环;而在Do Until循环中,执行循环直到条件为真(True)时,退出循环。Do Until循环的基本语法结构如下:Do [Until 条件语句][语句块][Exit Do][语句块]Loop或者:Do

在对象中循环——For Each-Next结构的使用
在对象中循环——For Each-Next结构的使用

前面我们介绍过Excel的对象模型及一些常用的对象,也解过对象变量的概念及声明对象变量的方法。其实,在绝大多数情况下,我们都是通过使用Excel VBA操纵Excel对象来达到我们的目的。例如,我们可以操作工作表对象,为工作表命名、排序工作表、统计工作表个数;我们可以操作单元格对象,在单元格区域中填充内容、查找有指定内容的单元格;等等。为方便操控Excel对象,VBA提供了For Each-Next结构,可以在对象组成的集合中循环,给集合中的所有对象执行操作,或者集合中满足相关条件的对象执行操作。使用For Each-Next结构,我们无需知道集合中对象的数目,只需要声明相应的对象变量,编写执行操作的指令。For Each-Next结构的语法如下:For Each 对象变量In 对象集合[语句块][Exit For][语句块]Next [对象变量]说明:

看看VBA的Sub过程和Function过程
看看VBA的Sub过程和Function过程

经过前面的一系列文章的示例学习,我们应该已经熟悉了Sub过程。通常我们看到的Sub过程的基本形式是:Sub 过程名称()[此处放置代码语句]Exit SubEnd Sub这也是我们在编写大多数VBA程序时用到的结构。其中:过程名称为编程人员给过程命名的名称,其命名规则与变量名称的规则相同。在同一模块中的过程名称不能同名。Sub和End Sub配套出现,它们之间构成一个完整的程序过程。过程中的代码可以放置ExitSub语句,表示提前退出过程。通常,在VBE编辑器中,写下sub和过程名称,按下回车键后,会自动添加End Sub语句。Sub过程用来执行操作,而Function过程可以返回值,创建自定义函数。Function过程的基本语法形式为:

excel图表常见问题回答!
excel图表常见问题回答!

Excel的某些行为往往会让用户感到疑惑、对VBA不甚了解的人在初次使用代码时也会碰到一些貌似奇怪的问题。下面我们就从最简单的说起。问题1:为什么在打开有些Excel文件时出现安全警告?在打开Excel文件时,我们时常会看到下图所示的安全警告消息框。根据Excel的版本不同或者在Excel 2007以上版本中打开Excel 2003版本的文件,大致会出现图中所示的3类消息框。这是因为我们打开的工作簿中含有代码,并且在“安全性”(Excel 2003版)或者“信任中心”中对宏进行了较高级别的设置。默认情况下,为了防止宏病毒的侵害,Excel会自动采用较高级别的宏安全设置。如果我们事先知道宏是安全的,就可以单击启用宏。如果不太确定宏的安全性,可以先选择禁用宏,然后在VBE中查看宏代码,确认是否安全。问题2:为什么在保存Excel文件时会出现额外的提示信息?在Excel 2007以上的版本中,当我们保存含有宏代码的工作簿时,有时会出现下图所示的信息框。在Excel 2007以上的版本中,Microsoft采用了新的文件格式,扩展名为.xlsx的文件中不包含宏代码,不能将代码添加到具有.xlsx扩展名的Excel文件中,即使将宏代码添加到.xlsx的文件中,在保存时Excel也会将代码丢弃。

使用INDEX函数返回整行或整列
使用INDEX函数返回整行或整列

在Excel中,INDEX函数是我们经常使用的函数之一,可以返回一个值,然而,如果将其行参数或者列参数指定为0(或者忽略),那么会返回对指定列或行的引用。注意,这里返回的不是单个值,而是一组值。如下所示,公式:=INDEX(A1:D4,0,2)或者:=INDEX(A1:D4,,2)返回数据区域A1:D4中的第2列,即单元格区域B2:B4。如下所示,公式:=INDEX(A1:D4,3,0)或者:

共计75934条记录 上一页 1.. 4564 4565 4566 4567 4568 4569 4570 ..7594 下一页