2025年Excel宏教程

Excel宏教程Excel 宏教程 一 选中单个单元格 Range lt 单元格地址 gt Select 例 Range C9 Select 选中 C9 单元格 二 选中多个单元格 Range lt 单元格地址 gt lt 单元格地址 gt lt 单元格地址 gt 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   ‘选中25

Columns("A:A").Select   ‘选中A

Columns("E:B").Select   ‘选中EB

三、   设置活动单元格

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:=<XlDirection>

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 = <True / False>   ‘加粗

Selection.Font.Italic = <True / False>   ‘斜体

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

XlUnderlineStyle(下划线样式):

xlUnderlineStyleDouble   ‘双下划线

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

xlUnderlineStyleNone   没有下划线

xlUnderlineStyleSingle   ‘单下划线

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

3.     设置字体的颜色

Selection.Font.ColorIndex = <056之间的数字>

Selection.Font.Color = <RGB>

4.     设置字体的特殊效果

Selection.Font.Strikethrough = <True / False>   ‘删除线

Selection.Font.Superscript = <True / False>   ‘上标

Selection.Font.Subscript = <True / False>   ‘下标

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

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(边线的宽度值)>

XlBorderWeight(宽度值):

xlHairline   ‘极细

xlThin   ‘

xlMedium   ‘中等

xlThick   ‘

3.     设置边线的颜色


讯享网

Selection.Borders(xlEdgeLeft).ColorIndex = <056之间的数字>

Selection.Borders(xlEdgeLeft).Color = <RGB>

十、   删除选中的单元格

Selection.Delete <XlDirection>

Selection.EntireRow.Delete

Selection.EntireColumn.Delete

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

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

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

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

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

1.       背景色

Selection.Interior.ColorIndex = <056之间的数字>

Selection.Interior.Color = <RGB>

2.     图案样式

Selection.Interior.Pattern = <Constants(图案样式)>

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 = <056之间的数字>

Selection.Interior.PatternColor = <RGB>

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

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 = <True/False>

4.     删除批注

ClearComments

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

5.     选中批注

Comment.Shape.Select True

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

6.     改变批注大小和位置

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

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

例: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 <option>

十七、改变列宽

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

小讯
上一篇 2025-03-20 16:43
下一篇 2025-02-27 23:56

相关推荐

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