最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

excel宏教程

来源:动视网 责编:小OO 时间:2025-09-30 08:37:10
文档

excel宏教程

Excel宏教程一、  选中单个单元格Range(““).Select 例:Range("C9").Select  ‘选中“C9”单元格 二、  选中多个单元格Range(“:[,……]”).Select 例:Range(“A1:B2”).Select  ‘选中“A1”、“A2”、“B1”、“B2”四个连续的单元格Range(“12:12”).Select  ‘选中第12行Range(“B:B”).Select  ‘选中第B列Range(“A1:A2,B7,2:2”).Select  ‘选中“
推荐度:
导读Excel宏教程一、  选中单个单元格Range(““).Select 例:Range("C9").Select  ‘选中“C9”单元格 二、  选中多个单元格Range(“:[,……]”).Select 例:Range(“A1:B2”).Select  ‘选中“A1”、“A2”、“B1”、“B2”四个连续的单元格Range(“12:12”).Select  ‘选中第12行Range(“B:B”).Select  ‘选中第B列Range(“A1:A2,B7,2:2”).Select  ‘选中“
Excel宏教程

一、   选中单个单元格

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

 

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

 

二、   选中多个单元格

Range(“<单元格地址>:<单元格地址>[,<单元格地址>……]”).Select

 

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

Range(“12:12”).Select   ‘选中第12行

Range(“B:B”).Select   ‘选中第B列

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

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

 

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

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

 

例:Rows(“2:2”). Select   ‘选中第2行

Rows(“2:5”). Select   ‘选中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"

Range("B3").Activate

ActiveCell.FormulaR1C1 = "37"

 

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

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

 

六、   插入单元格

Selection.Insert Shift:=

Selection.EntireRow.Insert

Selection.EntireColumn.Insert

 

例:Selection.Insert Shift:=xlToRight   ‘在当前选中单元格的位置插入单元格并将当前选中的单元格向右移动

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

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

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

 

七、   设置字体属性

1.       设置字体名称和大小

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

Selection.Font.Size = <字号>

 

例:Selection.Font.Name = "隶书"

Selection.Font.Size = 15

2.     设置字体样式

Selection.Font.Bold =    ‘加粗

Selection.Font.Italic =    ‘斜体

Selection.Font.Underline = < XlUnderlineStyle(下划线样式)>   ‘下划线

 

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   ‘斜点线

2.     设置边线的宽度

Selection.Borders(<边线>).Weight =

 

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.Delete Shift:=xlToLeft   ‘删除选中的单元格,并将已删除单元格所在位置右面的单元格向左移动

Selection.Delete Shift:=xlUp   ‘删除选中的单元格,并将已删除单元格所在位置下面的单元格向上移动

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

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

 

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

1.       背景色

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.     图案颜色

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

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 ("Writes the content in here!")

2.     修改批注内容

Comment.Text

 

例:Range("B1").Comment.Text Text:= "Writes the content in here!"

3.     显示/隐藏批注

Comment.Visible =

4.     删除批注

ClearComments

 

例:Selection.Range("B1").ClearComments

5.     选中批注

Comment.Shape.Select True

 

例:Range("D8").Comment.Shape.Select True

6.     改变批注大小和位置

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

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

 

例:Selection.ShapeRange.ScaleWidth 1.5, msoFalse, msoScaleFromTopLeft   ‘每次增加5%的宽度

Selection.ShapeRange.ScaleHeight 0.6, msoFalse, msoScaleFromTopLeft   ‘每次减少6%的宽度

 

Selection.ShapeRange.Left = <左边距>

Selection.ShapeRange.Top = <上边距>

Selection.ShapeRange.Width = <宽度值>

Selection.ShapeRange.Height = <高度值>

 

十五、剪切、复制、粘贴

Selection.Cut   ‘剪切

Selection.Copy   ‘复制

ActiveSheet.Paste   ‘粘贴

 

例:Range("A1").Select

Selection.Cut

Range("A2").Select

ActiveSheet.Paste

Selection.Copy

Range("A3").Select

ActiveSheet.Paste

 

十六、选择性粘贴

Selection.PasteSpecial

 

十七、改变列宽

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

 

例:Columns("A:A").Select

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

 

EntireColumn.AutoFit   ‘自动改变列宽

 

例:Columns("C:C").EntireColumn.AutoFit   ‘根据C列的内容自动改变列的宽度

在Excel 97中,"宏"是一个难以理解的概念,但对于一个具体的"宏"而言,却是容易理解的,如果说"将一块文字变为注释:黑体注释:,字号为注释:三号注释:"就可以看作一个"宏"的话,那么"宏"就不难理解了,其实Excel 97中的许多操作都可以是一个"宏"。 

  "记录宏"其实就是将工作的一系列操作结果录制下来,并命名存储(相当于VB中一个子程序)。在Excel 97中,"记录宏"仅记录操作结果,而不记录操作过程。例如,改变文字字体时,需要打开"字体"栏中的下拉列表,再选择一种字体,这时文字即变为所选择的字体,这是一个过程,结果是将所选择的文字改变为所选择的字体。而"记录宏"则只记录"将所选择的文字改变为所选择的字体"这一结果。 

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

  本人就利用Excel 97中所提供的宏功能来做学生成绩的分析处理程序。本程序是Excel中的一个文件,其中包含以下几个宏:分班、总分、平均分、分数段、删除等。 

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

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

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

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

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

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

  删除:用于删除不用的工作表。 

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

  ⑴分班 

  Sub 分班()

   Const studentno = 191 '注释:学生人数

   Const zdno = 12 '注释:字段数

   Dim zd$(zdno) ' 注释:定义为12个字段的数组

   Dim a(studentno, zdno), stu(60, zdno)

   Dim nam$(studentno), bjname$(60) '注释:定义一个存放全校学生名字及各班学生名字的数组

   Dim bj(studentno) '注释:定义存放班级的一个数组 注释:    理科班工作表

   Sheets("高三理").Select

   For i = 2 To studentno

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

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

     For j = 3 To zdno

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

     Next j

   Next i

'注释:    存放字段到数组中?

   For i = 1 To zdno

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

   Next i

'注释:    先建立各个班级的工作表

   Sheets("高三理").Select

   Sheets("高三理").Copy After:=Sheets("高三理")

   Sheets("高三理 (2)").Select

   Sheets("高三理 (2)").Name = "33"

   For i = 2 To studentno

     For j = 1 To zdno

       ActiveSheet.Cells(i, j) = Space$(1)

     Next j

   Next i

   Range("a1").Select

   For i = 1 To zdno

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

   Next i

   '注释:34到36班工作表的建立

   For i = 34 To 36

     x$ = Mid$(Str(33), 2)

     Sheets(x$).Select

     Sheets(x$).Copy After:=Sheets("高三理")

     Sheets(x$ & " (2)").Select

     Sheets(x$ & " (2)").Name = Mid$(Str(i), 2)

   Next i

'注释:    具体分班?

   For k = 33 To 36

     bjrs = 0

     x$ = Mid$(Str(k), 2)

     no = k Mod 10

     Sheets(x$).Select

     For i = 2 To studentno

       If bj(i) = no Then

         bjrs = bjrs + 1

         bjname$(bjrs) = nam$(i)

         For j = 3 To zdno

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

         Next j

       End If

     Next i

     For i = 2 To bjrs

       ActiveSheet.Cells(i, 1) = no

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

       For j = 3 To zdno

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

       Next j

     Next i

   Next k

End Sub

  ⑵总分 

 Sub 总分()

Const studentno = 191

   Const xknum = 6

   Const zdnum = 12

   Sheets("高三理").Select

   For i = 2 To studentno

     Sum = 0

     For j = 1 To xknum

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

     Next j

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

   Next i

End Sub

  ⑶平均分 

Sub 平均分() 

  Const studentno = 190 

  Const xknum = 6 

  Dim fs(studentno, xknum), pjf3(4, 6), bjrs(4), qxpjf(6) 

  Dim bj(studentno) 

  Sheets("高三理").Select 

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

  For i = 1 To studentno 

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

   For j = 1 To xknum 

    fs(i, j) = ActiveSheet.Cells(i 1, j 3) 

   Next j 

  Next i 

  For i = 1 To xknum 

   Sum = 0 

   For j = 1 To studentno 

    Sum = Sum fs(j, i) 

   Next j 

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

  Next i 

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

  For j = 1 To 4 

   For i = 1 To studentno 

    If bj(i) = j 2 Then 

     bjrs(j) = bjrs(j) 1 

     For k = 1 To xknum 

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

     Next k 

    End If 

   Next i 

  Next j 

  For j = 1 To 4 

   For i = 1 To 6 

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

   Next i 

  Next j 

  注释:写入各班各科平均分 

  Sheets("平均分").Select 

  For i = 1 To 4 

   For j = 1 To 6 

    ActiveSheet.Cells(i 2, j 1) = pjf3(i, j) 

   Next j 

  Next i 

  注释:写入全校各科平均分 

  i = 7 

  For j = 1 To 6 

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

  Next j 

End Sub 

⑷分数段 

Sub 分数段() 

  Const max = 600 

  Const min = 390 

  Const studentno = 190 

  Const bjnum = 4 

  Const fsdnum = 22 

  Dim bjfsd(bjnum, fsdnum), zf(studentno, 2) 

  Sheets("高三理").Select 

  For i = 1 To studentno 

   zf(i, 1) = ActiveSheet.Cells(i 1, 1) 注释:存放班级 

   zf(i, 2) = ActiveSheet.Cells(i 1, 11) 注释:存放总分 

  Next i 

 For i = 1 To studentno 

   For j = 1 To 4 注释:3---6班共4个班级 

    If zf(i, 1) = j 2 Then 

     For k = max To min Step -10 

      low = Int((max 10 - k) / 10) 

      If zf(i, 2) > k Then bjfsd(j, low) = bjfsd(j, low) 1

     Next k 

    End If 

   Next j 

  Next i 

  Sheets("sheet3").Select 

  For i = 3 To 6 

   For k = 1 To fsdnum 

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

   Next k 

  Next i 

  Range("M3:W6").Select 

  Selection.Cut 

  ActiveWindow.LargeScroll ToRight:=-1 

  Range("B8").Select 

  ActiveSheet.Paste 

End Sub 

  ⑸ 删除 

Sub 删除() 

   Sheets("33").Select 

   ActiveWindow.SelectedSheets.Delete 

   Sheets("34").Select 

   ActiveWindow.SelectedSheets.Delete 

   Sheets("35").Select 

   ActiveWindow.SelectedSheets.Delete 

   Sheets("36").Select 

   ActiveWindow.SelectedSheets.Delete 

End Sub

文档

excel宏教程

Excel宏教程一、  选中单个单元格Range(““).Select 例:Range("C9").Select  ‘选中“C9”单元格 二、  选中多个单元格Range(“:[,……]”).Select 例:Range(“A1:B2”).Select  ‘选中“A1”、“A2”、“B1”、“B2”四个连续的单元格Range(“12:12”).Select  ‘选中第12行Range(“B:B”).Select  ‘选中第B列Range(“A1:A2,B7,2:2”).Select  ‘选中“
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top