excel宏的简单介绍、使用方法,VBA代码编写的简单语法

一、宏的简介

什么是宏?

excel宏是一种自动化工具,它允许用户录制一系列操作并将其转换为VBA(Visual Basic for Applications)代码。这样,用户可以在需要时执行这些操作,以自动化Excel任务。

宏的优点

我们可以利用宏来进行一些重复性的操作,也能方便我们根据要求去处理表格的数据,提高对表格的处理效率。
其具体可以进行的操作有:
1、自动化重复性操作:宏可以自动执行某些操作,如打开特定的工作簿、执行特定的计算、格式化数据等。
2、数据处理:宏可以对数据进行处理和分析,如筛选数据、计算、排序、合并、拆分等。
3、自定义功能:宏可以自定义特定的功能和过程,如自动化报告生成、数据导出、输入验证、图表制作等。
4、与其他应用程序交互:宏可以与其他应用程序进行交互,如从Internet上获取数据、发送电子邮件等。

使用宏的两种方法

宏录制

如果想要使用宏,首先需要确保“开发工具”选项卡在Excel中可用。可以在“文件”->“选项”->“自定义功能区”中启用它。接下来,可以按照以下步骤录制宏:

1.在“开发工具”选项卡中,单击“宏”按钮,打开“宏”对话框,点击“录制宏”按钮。

2.输入宏的名称和描述,并选择保存的位置(通常是当前工作簿)。

3.开始录制操作,如输入数据、设置格式等。

4.完成操作后,点击“停止录制”按钮,Excel会将操作转换为VBA代码。

在这里插入图片描述

编写VBA代码

其次还可以通过手动编写VBA代码或结合录制宏和手动编写代码的方式来创建宏。对于每一个录制好的宏,我们可以点击“查看宏”,选择某一个宏,点击“编辑”来查看其生成的VBA代码,也可以改动代码以改变宏的功能。
在这里插入图片描述

运行宏的步骤如下:
打开Excel文件,点击“开发工具”选项卡。
点击“查看宏”按钮,选择需要运行的宏。
点击“运行”按钮,Excel将执行该宏的代码,自动化完成一系列操作。

VBA代码

其实在网上能够找到许多已经编辑好的宏的代码,我们也可以有根据的选取一些宏来使用,对我们的表格进行处理,但是这样有两个缺点:

1.可能找不到完全符合我们要求的宏。我们对于表格的处理情况是多种多样的,现有的宏可能无法完全适配我们的需求。
2.安全问题:由于宏可以执行任何VBA代码,因此使用网上已有的宏代码存在安全风险。在运行宏之前,还需要确保它来源可靠,并且已适当调整宏安全性设置。

因此学会自己编写一些简单的VB代码,或者能够识别一般VBA代码语句的功能、作用,识别宏的安全性还是十分有用的。

宏过程定义

宏属于属于脚本语言, 就是不需要编译为exe文件,可以由解释器直接解释运行。

可以通过 Sub 关键字来定义一个过程
格式为Sub 宏名称()

而过程相当于是函数的概念,一个模块中也可以定义多个过程,每个过程其实就是一个宏,都可以被单独使用,也可以在一个过程内通过 Call 过程名 的方式调用另一个过程。
宏名称可以是中文
例如:

Sub 宏示例()
    Cells.Select       '选中单元格
    Range("G22").Activate    '将G22单元格设置为活动单元格
    Selection.Copy      '复制G22其中的内容
    Sheets("Sheet1").Select   '选择sheet1
    Cells.Select     '选择sheet1中的单元格
    Range("F26").Activate   '将sheet1中的F26作为活动单元格
    ActiveSheet.Paste     '将复制的内容粘贴到F26中
End Sub

其中Cells、Sheets、ActiveSheet 是VBA的对象。
'表示注释,其内容不被执行,相当于python里的#

同时我们还需要明确一个前提,即一个excel文件内可能保护多个sheet,每一个sheet一系列单元格cell。

数据类型

VBA中有多种基本数据类型可选择:

类型名称关键字
整型Integer
单精度Single
双精度Double
字符型String
长整型Long

每个数据类型其实还有简写,不过其简写都是用符号代替,个人决定这样的简写可能会降低代码的可读性。同时VBA还能定义对象类型。

变量声明与定义

Public:可定义全局变量
Dim:可定义局部变量

声明变量的语法为:

Dim 变量名 As 数据类型
Public 变量名 As 数据类型

变量定义复制
声明变量后,还需对变量进行复制,包括基本类型的变量赋值,对象类型的变量赋值

1、给基本类型的变量赋值,直接使用 变量名 = 值 的语法即可
2、给对象类型的变量赋值,需要利用到 Set 关键字,语法为 Set 变量名= 值
eg.

Sub example()
  ' 给基本类型变量赋值
  Dim localNum As Integer
  localNum = 22
  
  ' 给对象类型变量赋值  
  Dim obj As Range
  Set obj = Range("c1")
End Sub

简单逻辑语法

1、顺序结构

顾名思义就是安装顺序执行每一条语句,从上到下,从左到右边。

2、选择结构

if Then 结构 选择结构中,If Then 结构是最基础的一个。它只有条件表达式真时,才执行的代码。

If Then 结构基本语法如下,其中 End If是选择结构的结束标志。

If 条件表达式 Then
    '表达式为真时,执行
End If

举个例子:

Sub VBAexample()

    Dim i As Integer '定义i为整形变量
    
    For i = 2 To 10   'i的值在2-10范围遍历
    
        If Cells(i, "B").Value >= 100 Then   '依次选中B2-B10的单元格,查看其值是否大于100
            Cells(i, "C") = "是"   '大于100则在Ci单元格填入“是”
        End If
        
    Next i  '让i自增

End Sub   '结束

If Else 结构
相对于if then 多了一个非此即彼的选择。
即If Else结构中,条件表达式在真时,执行Then后的代码;条件表达式为假时,执行 Else后的代码。基本语法如下:

If 条件表达式 Then
    '真时执行的代码
Else
    '假时执行的代码
End If

3、循环结构

VBA提供了多种循环结构,和C、python的循环结构十分类似,【…】处为执行循环体内代码的条件,它们的差别在于【执行循环体内代码】和【判断是否满足循环条件】的顺序。

循环结构说明
For … Next按指定次数循环执行
For Each逐一遍历数据集合中的每一个元素
Do While … Loop当条件为真时,循环执行
Do … Loop While当条件为真时,循环执行。无论条件真假,至少运行一次
Do Until … Loop直到条件为真时,循环执行
Do … Loop Until直到条件为真时,循环执行。无论条件真假,至少运行一次

下面是上述某些循环结构的例子:
(1)
For … Next 循环

使用 For … Next循环可以指定次数,在制定次数没有到达上限之前循环执行一段代码。

For 循环

For 循环使用一个数字变量,从初始值开始,每循环一次,变量值增加或减小,直到变量的值等于指定的结束值时,循环结束。

For … Next 循环语法如下:

For [变量] = [初始值] To [结束值] Step [步长]
    '这里是循环执行的语句
Next

其中:

[变量] 是一个数字类型变量,可在循环执行的语句里使用。
[初始值] 和 [结束值] 是给定的值;
[步长]是每次循环时,变量的增量。如果为正值,变量增大;如果为负值,变量减小。

下面看一个实际的例子,求 1 至 100内 数字的奇数累积和。

Sub VBAexample()

    Dim i As Integer
    Dim sum As Integer
    
    For i = 1 To 100 Step 2
        sum = sum + i
    Next
    
End Sub

循环变量i的取值分别是1、3、5、7…99,当最后i=101时,不在满足小于100的条件,循环结束。

值得注意的是,For 循环的 Step 值如果是 1,则 Step 关键词可省略。

Do While …循环
Do While循环用于满足指定条件时循环执行一段代码的情形。循环的指定条件在 While关键词后书写。

Do While … Loop循环
根据 While 关键词后的条件表达式的值,真时执行,假时跳出循环转而执行Loop后的代码。基本语法如下:

Do While [条件表达式]
    '循环执行的代码
Loop

依旧看刚才求 1- 100内奇数累积和的例子。

Sub VBAexample()

    Dim i As Integer
    Dim sum As Integer
    
    i = 1
    Do While i <= 100
        sum = sum + i
        i = i + 2
    Loop
    
End Sub

i变量的初始值是 1,根据 While 后的条件,只要 i 变量小于等于 100,后续的代码就可以一直循环执行。

其他循环结构的代码类似。

4、with结构

个人感觉这个结构特别像c的结构体,只不过不用先在主函数外面定义结构体。使用 With 结构定义一个对象,通过【.】调用其内置参数,这样可以避免重复写同一个对象名,从而精简代码量。
with结构基本语法如下:

With [对象]
    .[属性] = [数据]
    .[方法]
    '其他属性和方法
End With

With 结构里,对象的属性和方法均有点 (.)符号开始,后接对象的属性名和方法名。

下面是With 结构的一个实例
若需要将工作簿中 Sheet1 工作表设置新名称,然后设置标签颜色为黑色,最后隐藏工作表。

(1)不用 With 结构,代码如下:

Sub VBAexample()
    Worksheets("Sheet1").Name = "新名称"
    Worksheets("Sheet1").Tab.ThemeColor = xlThemeColorLight1
    Worksheets("Sheet1").Visible = xlSheetHidden
End Sub

可以看到,每个语句都重复写 Worksheets(“Sheet1”) 部分。

(2)使用with结构,代码如下:

Sub VBAexample()

Sub VBAexample()
    With Worksheets("Sheet1")
        .Name = "新名称"
        .Tab.ThemeColor = xlThemeColorLight1
        .Visible = xlSheetHidden
    End With
End Sub

5、常用对象选择、操作

改变背景色
Range("A3").Interior.ColorIndex = xlNone

ColorIndex参数选择:
在这里插入图片描述

改变文字颜色
Range("A3").Font.ColorIndex = 4
获取单元格
Cells(2, 4)
Range("A4")
获取范围
Range(Cells(4, 5), Cells(8, 9))
Range("a2:c7")
'用快捷记号引用单元格
Worksheets("Sheet2").[A2:B6]
 
选中某sheet
Set NewSheet = Sheets("sheet2")
NewSheet.Select
隐藏文档
Application.Visible = False
禁止屏幕更新
Application.ScreenUpdating = False
禁止显示提示和警告消息
Application.DisplayAlerts = False
文件夹做成
strPath = "C:\temp\"
MkDir strPath
状态栏文字表示
Application.StatusBar = "计算中"

选中或激活某单元格

“Range”对象的的Select方法可以选择一个或多个单元格,而Activate方法可以指定某一个单元格为活动单元格

'下面的代码首先选择A1:E10区域,同时激活D4单元格:
       Range("a1:e10").Select
       Range("d4:e5").Activate
'而对于下面的代码:
       Range("a1:e10").Select
       Range("f11:g15").Activate
'由于区域A1:E10和F11:G15没有公共区域,将最终选择F11:G15,并激活F11单元格。
获得文档的路径和文件名
ActiveWorkbook.Path    '路径
ActiveWorkbook.Name   '名称
ActiveWorkbook.FullName  '路径+名称
'或将ActiveWorkbook换成thisworkbook
### 回答1: 对于这个问题,我可以说:在编写 Excel 代码时,可以使用 Visual Basic for Applications(VBA)来操作 Excel 工作表的各个部分,以实现功能。建议您可以先阅读 ExcelVBA 教程,学习基本的语法,然后尝试编写一些小程序,以熟悉 VBA 的基本操作。 ### 回答2: 编写Excel代码的步骤如下: 1. 打开Excel并选中"开发工具"选项卡。 2. 点击"Visual Basic"按钮,打开Visual Basic for Applications (VBA)编辑器。 3. 在编辑器中,选择"插入"菜单下的"模块"选项,创建一个新的模块来编写代码。 4. 在模块中编写你的代码代码可以用VBA语言编写,它类似于其他编程语言,可以使用变量、条件语句、循环等。你可以使用VBA提供的各种对象和方法来操作Excel文件,例如Workbooks、Worksheets、Range等。 5. 在编写代码时,你可以使用录制器来记录你所需要执行的操作步骤。然后,将录制的代码复制粘贴到模块中,并进行适当的修改。 6. 如果需要,你可以在代码中添加注释,以便其他人在阅读代码时更容易理解。 7. 在你完成代码编写后,保存VBA编辑器中的代码。 8. 返回Excel窗口,选中你想要应用的工作表。 9. 点击"开发工具"选项卡下的""按钮,选择刚刚创建的并点击"运行"按钮。 10. Excel会根据你编写代码自动执行相应的操作。 编写Excel代码需要一定的编程经验和对VBA语言的了解。随着更多的实践和掌握,你可以编写出更复杂、更灵活的来满足不同的需求。你也可以参考一些Excel VBA教程或书籍来学习更多关于代码的知识。 ### 回答3: 编写Excel代码可以通过以下步骤进行: 第一步,打开Excel,点击“开发”选项卡,在“代码”组中选择“Visual Basic”。 第二步,在弹出的VBA编辑器中,选择“插入”菜单,点击“模块”创建一个新的模块。 第三步,开始编写代码代码需放在Sub(子程序)和End Sub之间。 下面是一个简单的示例代码,用于将选定列的值相加和并显示在指定单元格中: ``` Sub SumColumn() Dim rng As Range Dim cell As Range Dim sum As Double Set rng = Selection ' 选取需要相加的列 For Each cell In rng sum = sum + cell.Value ' 将每个单元格的值相加 Next cell Range("A1").Value = sum ' 将相加和显示在A1单元格中 End Sub ``` 第四步,保存并运行。按下"Ctrl + S"保存代码。之后可以通过按下"Alt + F8"来打开对话框并选择要运行的。 需要注意的是,编写时应该确保代码的正确性和可靠性,避免出现错误。还要根据需求进行适当的调整和修改。对于更复杂的代码,需要深入学习VBA编程知识,掌握更多的技巧和方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值