完整版excel宏教程.docx

上传人:b****6 文档编号:6160816 上传时间:2023-01-04 格式:DOCX 页数:14 大小:20.03KB
下载 相关 举报
完整版excel宏教程.docx_第1页
第1页 / 共14页
完整版excel宏教程.docx_第2页
第2页 / 共14页
完整版excel宏教程.docx_第3页
第3页 / 共14页
完整版excel宏教程.docx_第4页
第4页 / 共14页
完整版excel宏教程.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

完整版excel宏教程.docx

《完整版excel宏教程.docx》由会员分享,可在线阅读,更多相关《完整版excel宏教程.docx(14页珍藏版)》请在冰豆网上搜索。

完整版excel宏教程.docx

完整版excel宏教程

Excel宏教程

一、选中单个单元格

Range(“单<元格地址>“).Select

例:

Range("C9").Select‘选中“C9”单元格

二、选中多个单元格

Range(“单<元格地址>:

<单元格地址>[,<单元格地址>⋯⋯]”).Select

例:

Range(“A1:

B2”).Select‘选中“A1”、“A2”、“B1、”“B2”四个连续的单元格

Range(“12:

12”).Sele‘选ct中第12行

Range(“B:

B”).Sele‘c选t中第B列

Range(“A1:

A2,B7,2:

2”).S‘e选le中ct“A1、”“A2、”“B7五”个不连续的单元格和第二行

Cells.Select‘选中当前SHEET中的所有单元格

Rows("<行地址>:

<行地址>").Select‘选中整行

Columns("<列地址>:

<列地址>").Select‘选中整列

例:

Rows(“2:

2”).Select‘选中第2行

Rows(“2:

5”).Selec‘选t中2到5行

Columns("A:

A").Select‘选中A列

Columns("E:

B").Select‘选中E到B列

三、设置活动单元格

Range("<单元格地址>").Activate

注:

设置活动单元格与选中单元格类似,不同之处就是后者在选中指定的单元格之前会将在此前已被选中的单元格取消掉。

前者在设置之前不会取消已选中的单元格,

如果此时操作的单元格不是被选中的单元格,这时他实现的功能与选一个单元格相同。

四、给活动的单元格赋值

ActiveCell.FormulaR1C1=<值>

例:

Range("A1").Select

ActiveCell.FormulaR1C1="Name"

Range("B1").Select

ActiveCell.FormulaR1C1="Age"

Range("A2:

B3").Select

Range("A2").Activate

ActiveCell.FormulaR1C1="BUG"

Range("B2").Activate

ActiveCell.FormulaR1C1="12"

Range("A3").Activate

ActiveCell.FormulaR1C1="Archer"

ActiveCell.FormulaR1C1="37"

五、得到指定单元格中的值

Range("<单元格地址>").Text

六、插入单元格

Selection.InsertShift:

=

Selection.EntireRow.Insert

Selection.EntireColumn.Insert

例:

Selection.InsertShift:

=xlToRight‘在当前选中单元格的位置插入单元格并将当前选中

的单元格向右移动

Selection.InsertShift:

=xlDown‘在当前选中单元格的位置插入单元格并将当前选中的单元格向下移动

Selection.EntireRow.Insert‘在当前选中单元格的上面插入一行

Selection.EntireColumn.Insert‘在当前选中单元格的左侧插入一列

七、设置字体属性

1.设置字体名称和大小

Selection.Font.Name=<字体名称>

Selection.Font.Size=<字号>

例:

Selection.Font.Name="隶书"

Selection.Font.Size=15

Selection.Font.Underline=‘下划线

XlUnderlineStyle(下划线样式):

xlUnderlineStyleDouble‘双下划线

xlUnderlineStyleDoubleAccounting‘会计用双下划线(如果当前单元格中的数据是数字时则下划线的宽度是当前单元格的宽度)

xlUnderlineStyleNone没有下划线

xlUnderlineStyleSingle‘单下划线

xlUnderlineStyleSingleAccounting‘会计用单下划线(如果当前单元格中的数据是数字时则下划线的宽度是当前单元格的宽度)

3.设置字体的颜色

Selection.Font.ColorIndex=<0到56之间的数字>

Selection.Font.Color=

4.设置字体的特殊效果

Selection.Font.Strikethrough=‘删除线

Selection.Font.Superscript=‘上标

Selection.Font.Subscript=‘下标

八、清空选中单元格里的内容

Selection.ClearContents

例:

Range(“A1:

A2,B7,2:

2”).Select‘选中“A1”、“A2”、“B7”五个不连续的单元格和第二行

Selection.ClearContents‘清空“A1、”“A2、”“B7五”个不连续单元格中的所有内容

九、设置选中单元格的边线属性

XlBordersIndex(边线):

xlEdgeLeft'单元格左边线

xlEdgeTop‘单元格上边线

xlEdgeRight

‘单元格右边线

xlEdgeBottom

‘单元格下边线

xlDiagonalDown

‘单元格左上右下斜线

xlDiagonalUp

‘单元格左上右下斜线

xlInsideVertical

‘多个单元格内垂直线

xlInsideHorizontal‘多个单元格内水平线

1.设置边线的类型

边线类型)>

Selection.Borders(<边线>).LineStyle=<XlLineStyle(

XlLineStyle(边线类型):

xlLineStyleNone‘无样式

xlContinuous‘单线

xlDash‘破折号线(间隔线)

xlDashDot‘破折号点线

xlDashDotDot‘破折号点点线

xlDot‘点线

xlDouble‘双横线

xlSlantDashDot‘斜点线

Selection.Borders(<边线>).Weight=<XlBorderWeight(边线的宽度值)>

XlBorderWeight(宽度值):

xlHairline‘极细

xlThin‘细

xlMedium‘中等

xlThick‘粗

3.设置边线的颜色

Selection.Borders(xlEdgeLeft).ColorIndex=<0到56之间的数字>

Selection.Borders(xlEdgeLeft).Color=

十、删除选中的单元格

Selection.Delete

Selection.EntireRow.Delete

Selection.EntireColumn.Delete

例:

Selection.DeleteShift:

=xlToLeft‘删除选中的单元格,并将已删除单元格所在位置右面的单元格向左移动

Selection.DeleteShift:

=xlUp‘删除选中的单元格,并将已删除单元格所在位置下面的单元

格向上移动

Selection.EntireRow.Delete‘删除选中单元格所在的行

Selection.EntireColumn.Delete‘删除选中单元格所在的列

十一、设置单元格背景色及图案

Selection.Interior.ColorIndex=<0到56之间的数字>

Selection.Interior.Color=

2.图案样式

图案样式)>

Selection.Interior.Pattern=

Constants(图案样式):

xlSolid

'实心

xlGray75

'75%

灰色

xlGray50

'50%

灰色

xlGray25

'25%

灰色

xlGray16

'12.5%

灰色

xlGray8

'6.25%

灰色

xlHorizontal'水平条纹

xlVertical

'垂直

条纹

xlDown'逆对角线条纹

xlUp'对角线条纹xlChecker'对角线剖面线xlSemiGray75'粗对角线剖面线xlLightHorizontal'细水平条纹xlLightVertical'细垂直条纹xlLightDown'细逆对角线条纹xlLightUp'细对角线条纹xlGrid'细水平剖面线xlCrissCross'细对角线剖面线

3.图案颜色

到56之间的数字>

Selection.Interior.PatternColorIndex=<0

Selection.Interior.PatternColor=

十二、返回工作表中的行数

Sheet1.UsedRange.Rows.Count‘返回从最小已输入内容的行号到最大已输入内容的行号之间的行数

Sheet1.UsedRange.Rows(Sheet1.UsedRange.Rows.Count).Row‘最大已输入内容的行号十三、得到当前EXCEL的文件名

ThisWorkbook.Path‘文件路径

ThisWorkbook.Name‘文件名

ThisWorkbook.FullName‘全路径十四、批注的操作

1.添加批注

AddComment([Content])

例:

Range("A1").AddComment("Writesthecontentinhere!

")

2.修改批注内容

Comment.Text

例:

Range("B1").Comment.TextText:

="Writesthecontentinhere!

"

Comment.Visible=

4.删除批注

ClearComments

例:

Selection.Range("B1").ClearComments

5.选中批注

Comment.Shape.SelectTrue

例:

Range("D8").Comment.Shape.SelectTrue

6.改变批注大小和位置

Selection.ShapeRange.ScaleWidth<宽度比例>,msoFalse,

Selection.ShapeRange.ScaleHeight<高度比例>,msoFalse,

‘每次增加

每次减少6%

例:

Selection.ShapeRange.ScaleWidth1.5,msoFalse,msoScaleFromTopLeft5%的宽度

Selection.ShapeRange.ScaleHeight0.6,msoFalse,msoScaleFromTopLeft的宽度

左边距>

上边距>

Selection.ShapeRange.Left=<

Selection.ShapeRange.Top=<

Selection.ShapeRange.Width=<宽度值>

Selection.ShapeRange.Height=<高度值>

五、剪切、复制、粘贴

Selection.Copy‘复制

ActiveSheet.Paste‘粘贴

例:

Range("A1").Select

Selection.Cut

Range("A2").SelectActiveSheet.PasteSelection.Copy

Range("A3").SelectActiveSheet.Paste

十六、选择性粘贴

Selection.PasteSpecial

十七、改变列宽

Selection.ColumnWidth=<宽度值>‘指定列宽

例:

Columns("A:

A").Select

Selection.ColumnWidth=30‘改变已选列的宽度

‘根据C列的内容自动改变列的宽度

EntireColumn.AutoFit‘自动改变列宽

例:

Columns("C:

C").EntireColumn.AutoFit

在Excel97中,"宏"是一个难以理解的概念,但对于一个具体的"宏"而言,却是容易理解的,如果说"将一块文字变为注释:

黑体注释:

,字号为注释:

三号注释:

"就可以看作一个"宏"

的话,那么"宏"就不难理解了,其实Excel97中的许多操作都可以是一个"宏"。

"记录宏"其实就是将工作的一系列操作结果录制下来,并命名存储(相当于VB中一个

子程序)。

在Excel97中,"记录宏"仅记录操作结果,而不记录操作过程。

例如,改变文字字体时,需要打开"字体"栏中的下拉列表,再选择一种字体,这时文字即变为所选择的字体,这是一个过程,结果是将所选择的文字改变为所选择的字体。

而"记录宏"则只记录"将

所选择的文字改变为所选择的字体"这一结果。

Excel97中工作表是由行和列组成的二维表格,我们可以通过系统提供的语句activesheet.cells(I,j),将当前工作表中的第I行第j列所在的单元格中的数据取出(也可将它数据填入到指定的单元格中),然后反把它放入所定义的数组中,这时就可以对其进行各种操作,如求平均分、总分、分数段人数等等。

本人就利用Excel97中所提供的宏功能来做学生成绩的分析处理程序。

本程序是Excel中的一个文件,其中包含以下几个宏:

分班、总分、平均分、分数段、删除等。

说明:

⑴本程序是以本校高三理科班学生成绩进行分析。

⑵有关程序中用到的几具宏的功能说明:

分班:

针对于难以确定班级的情况下,以班为单位进行分班,本宏可以作为高一新生入学时进行分班的功能。

总分:

对原始的成绩自动求总分。

平均分:

对原始的成绩以班为单位进行各学科平均成绩的计算及全校各学科成绩的计算。

分数段:

给定一个最高分数及最低分数,然后统计出各班各个分数段的人数,各分数段人数进行累计。

删除:

用于删除不用的工作表。

现将各个宏的代码列举如下:

⑴分班

Sub分班()

Conststudentno=191'注释:

学生人数

Constzdno=12'注释:

字段数

Dimzd$(zdno)'注释:

定义为12个字段的数组

Dima(studentno,zdno),stu(60,zdno)

Dimnam$(studentno),bjname$(60)'注释:

定义一个存放全校学生名字及各班学生名字的数组

理科班工作表

Dimbj(studentno)'注释:

定义存放班级的一个数组注释:

Sheets("高三理").Select

Fori=2Tostudentno

bj(i)=ActiveSheet.Cells(i,1)

nam$(i)=ActiveSheet.Cells(i,2)

Forj=3Tozdno

a(i,j)=ActiveSheet.Cells(i,j)

Nextj

Nexti

'注释:

存放字段到数组中?

Fori=1Tozdno

zd$(i)=ActiveSheet.Cells(1,i)

Nexti

'注释:

先建立各个班级的工作表

Sheets("高三理").Select

Sheets("高三理").CopyAfter:

=Sheets("高三理")

Sheets("高三理

(2)").Select

Sheets("高三理

(2)").Name="33"

Fori=2Tostudentno

Forj=1Tozdno

ActiveSheet.Cells(i,j)=Space$

(1)

Nextj

Nexti

Range("a1").Select

Fori=1Tozdno

ActiveSheet.Cells(1,i)=zd$(i)

Nexti

'注释:

34到36班工作表的建立

Fori=34To36x$=Mid$(Str(33),2)Sheets(x$).Select

Sheets(x$).CopyAfter:

=Sheets("高三理")Sheets(x$&"

(2)").Select

Sheets(x$&"

(2)").Name=Mid$(Str(i),2)Nexti

'注释:

具体分班?

Fork=33To36

bjrs=0

x$=Mid$(Str(k),2)no=kMod10Sheets(x$).Select

Fori=2TostudentnoIfbj(i)=noThenbjrs=bjrs+1

bjname$(bjrs)=nam$(i)

Forj=3Tozdno

stu(bjrs,j)=a(i,j)

Nextj

EndIf

Nexti

Fori=2Tobjrs

ActiveSheet.Cells(i,1)=no

ActiveSheet.Cells(i,2)=bjname$(i)Forj=3Tozdno

ActiveSheet.Cells(i,j)=stu(i,j)

Nextj

Nexti

Nextk

EndSub

⑵总分

Sub总分()

Conststudentno=191

Constxknum=6

Constzdnum=12

Sheets("高三理").Select

Fori=2Tostudentno

Sum=0

Forj=1Toxknum

Sum=Sum+ActiveSheet.Cells(i,j+2)

Nextj

ActiveSheet.Cells(i,zdnum-3)=Sum

Nexti

EndSub

⑶平均分

Sub平均分()

Conststudentno=190

qxpjf(6)

Constxknum=6

Dimfs(studentno,xknum),pjf3(4,6),bjrs(4),Dimbj(studentno)

Sheets("高三理").Select注释:

以下程序段用于求全校平均分

Fori=1Tostudentno

bj(i)=ActiveSheet.Cells(i1,1)

Forj=1Toxknum

fs(i,j)=ActiveSheet.Cells(i1,j3)

Nextj

Nexti

Fori=1Toxknum

Sum=0

Forj=1Tostudentno

Sum=Sumfs(j,i)

Nextj

qxpjf(i)=Sum/(j-1)

Nexti注释:

以下程序段用于求各班平均分

Forj=1To4

Fori=1Tostudentno

Ifbj(i)=j2Then

bjrs(j)=bjrs(j)1

Fork=1Toxknum

pjf3(j,k)=pjf3(j,k)fs(i,k)

Nextk

EndIf

Nexti

Nextj

Forj=1To4

Fori=1To6

pjf3(j,i)=pjf3(j,i)/bjrs(j)

Nexti

Nextj注释:

写入各班各科平均分

Sheets("平均分").Select

Fori=1To4

Forj=1To6

ActiveSheet.Cells(i2,j1)=pjf3(i,j)

Nextj

Nexti

注释:

写入全校各科平均分

i=7

Forj=1To6

ActiveSheet.Cells(i,j1)=qxpjf(j)

Nextj

EndSub

⑷分数段

Sub分数段()

Constmax=600

Constmin=390

Conststudentno=190

Constbjnum=4

Constfsdnum=22

Dimbjfsd(bjnum,fsdnum),zf(studentno,2)

Sheets("高三理").Select

Fori=1Tostudentno

zf(i,1)=ActiveSheet.Cells(i1,1)注释:

存放班级

zf(i,2)=ActiveSheet.Cells(i1,11)注释:

存放总分Nexti

Fori=1Tostudentno

Forj=1To4注释:

3---6班共4个班级

Ifzf(i,1)=j2Then

Fork=maxTominStep-10low=Int((max10-k)/10)

low)1

Ifzf(i,2)>kThenbjfsd(j,low)=bjfsd(j,

Nextk

EndIf

Nextj

Nexti

Sheets("sheet3").Select

Fori=3To6

Fork=1Tofsdnum

ActiveSheet.Cells(i,k1)=bjfsd(i-2,k)

Nextk

Nexti

Range("M3:

W6").Select

Selection.Cut

ActiveWindow.LargeScrollToRight:

=-1

Range("B8").Select

ActiveSheet.Paste

EndSub

⑸删除

Sub删除()

Sheets("33").Select

ActiveWindow.Selec

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1