• 二、Excel VBA 简单使用


    请添加图片描述

    🤵‍♂️ 个人主页@艾迦洼的个人主页
    ✍🏻作者简介:后端程序猿
    😄 希望大家多多支持,如果文章对你有帮助的话,欢迎 💬👍🏻📂


    在这里插入图片描述

    目录


    👋第二章:Excel VBA 简单使用

    人们用 VBA 编写的大多数代码都是 SubFunction 过程。因此,在本节中,我们将主要学习如何编写、编辑和运行它们。

    ⚽️1. 如何在Excel中手动编写VBA代码

    要手动编写 VBA 代码,请按照以下步骤操作:

    • 创建一个新的 Excel 工作簿。
    • Alt+F11激活 VBE。
    • 单击菜单栏中的插入 > 模块
    • 手动键入或在编辑器中复制粘贴以下代码:
    Sub ShowHello()
     MsgBox "Hello, World!"
    End Sub
    
    Function ShowCurrentTime()
     ShowCurrentTime = "Current time: " & Now
    End Function
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    • 如果需要,请按Ctrl+S保存代码。文件的扩展名需要是XLSM,因为它包含宏。

    代码解释:

    • ShowHello() 是 Sub 过程的一个示例。每个 Sub 过程都以关键字 Sub 开始,并以 End Sub 结束。
    • ShowCurrentTime() 是 Excel VBA 函数过程的示例。每个 Function 过程都以关键字 Function 开始,并以 End Function 结束。

    ⚽️2. 如何在 Excel 中运行 VBA 代码

    Sub 过程和 Function 过程在 Excel 中的运行方式不同。两者都可以通过多种方式执行,但我们将只介绍其中的几种。

    要执行 Excel VBA 函数过程:

    您可以单击VBE 工具栏中的运行按钮或只需按F5即可执行相同的命令。Excel 执行光标所在的 Sub 过程。

    在这里插入图片描述

    或者,您可以通过按开发人员选项卡中的按钮从 Excel 执行子过程:

    在这里插入图片描述

    要执行 Function 过程:

    您可以在工作表中使用它或从另一个过程(Sub 或另一个 Function 过程)调用它。

    作为示例,让我们看看如何将 ShowCurrentTime 函数用作工作表公式来执行。为此,只需在单元格中键入 =ShowCurrentTime(),然后按Enter即可。见下图:

    在这里插入图片描述

    ⚽️3. 如何在Excel中记录VBA代码

    将代码输入 VBA 模块的另一种方法是使用 Excel 宏记录器记录您的操作。结果始终是 Sub 过程。因此,我们不能使用这个工具作为创建函数的替代方法——它们必须通过我们自己编写和编辑代码来手动输入。

    以下是录制宏的步骤:

    • 转到开发人员选项卡并单击录制宏按钮。
    • 录制宏对话框中,输入宏的名称。您还可以选择输入快捷键、宏位置和说明。

    在这里插入图片描述

    • 单击确定开始录制。
    • 执行所有需要记录的操作。例如,我们只需手动输入 A1 到 A10 中的 1 到 10:

    在这里插入图片描述

    • 完成后,单击开发人员选项卡中的停止录制按钮。

    ⚽️4. 如何在Excel中编辑录制的VBA代码

    录制宏后,您可能会好奇代码是什么样子的。您甚至可能想知道录制的宏存储在哪里,对吧?嗯,默认情况下,它们存储在模块中。

    因此,要查看和编辑录制的宏,首先需要通过按键盘上的 Alt+F11 激活 VBE。之后,双击创建的新模块并找到要编辑的代码。

    例如,这是我们之前录制的AssignRowNumber宏:

    Sub AssignRowNumber()
    '
    ' AssignRowNumber Macro
    ' This procedure inserts row numbers to cells, 1 to 10.
    '
    ' Keyboard Shortcut: Ctrl+Shift+M
    '
        ActiveCell.FormulaR1C1 = "1"
        Range("A2").Select
        ActiveCell.FormulaR1C1 = "2"
        Range("A3").Select
        ActiveCell.FormulaR1C1 = "3"
        Range("A4").Select
        ActiveCell.FormulaR1C1 = "4"
        Range("A5").Select
        ActiveCell.FormulaR1C1 = "5"
        Range("A6").Select
        ActiveCell.FormulaR1C1 = "6"
        Range("A7").Select
        ActiveCell.FormulaR1C1 = "7"
        Range("A8").Select
        ActiveCell.FormulaR1C1 = "8"
        Range("A9").Select
        ActiveCell.FormulaR1C1 = "9"
        Range("A10").Select
        ActiveCell.FormulaR1C1 = "10"
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    但是,您可能同意上述代码并不是为单元格赋值的最佳方法。它选择一个单元格,将值指定为公式,然后移动到下一个单元格。我们可以使用以下代码使代码更加紧凑、可读和动态:

    Sub AssignRowNumber()
    '
    ' AssignRowNumber Macro
    ' This procedure inserts row numbers to cells, 1 to 10.
    '
    ' Keyboard Shortcut: Ctrl+Shift+M
    '
     For i = 1 To 10
      ActiveSheet.Cells(i, 1).Value = i
     Next i
    
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    总之,宏记录器是进入 VBA 编程的好方法。然而,有时理解录制的宏可能会很复杂。好消息是,录制的宏在创建后可以进行自定义,使您可以更好地控制程序的功能和操作方式!

    ⚽️5. 如何将 VBA 代码分配给 Excel 中的按钮

    您可以轻松地将按钮添加到 Excel 工作表并为其指定宏。只需几个简单的步骤即可做到这一点。

    例如,让我们通过单击按钮来执行正在运行的 ShowHello() Sub 过程。

    步骤如下:

    • 单击开发工具选项卡,然后单击插入 > 按钮(表单控件)

    在这里插入图片描述

    • 单击并拖动工作表上的任意位置以创建按钮。
    • 分配宏对话框中,选择ShowHello,然后单击确定

    在这里插入图片描述

    • 默认情况下,创建按钮 1 。单击按钮的文本并输入Show Hello对其进行重命名。
    • 要测试该按钮,请单击它。您会看到一个消息框出现,向您问好😉

    在这里插入图片描述

    ⚽️6. 更多 VBA Excel 示例

    ⚾️6.1 示例#1:循环访问一系列单元格

    许多宏对范围内的每个单元格进行操作,或者根据每个单元格的值执行选定的操作。这些宏通常包含一个 ForEach-Next 循环,用于处理范围内的每个单元格。

    以下 SUMODDNUMBERS 函数演示如何循环遍历一系列单元格以对所有奇数求和。

    Function SUMODDNUMBERS(range As range)
     Dim cell As range
     
     For Each cell In range
      If cell.Value Mod 2 = 1 Then
       SUMODDNUMBERS = SUMODDNUMBERS + cell.Value
      End If
     Next cell
    
    End Function
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    要使用该函数,请在单元格中键入 =SUMODDNUMBERS() 并在参数中输入单元格范围。请参阅下面的屏幕截图:

    在这里插入图片描述

    ⚾️6.2 示例#2:条件结构

    以下示例演示如何使用 Select-Case 语句来使用决策结构。许多程序员喜欢 Select-Case 结构而不是 If-Then-Else,因为在检查多个条件时代码看起来更具可读性。

    Sub ShowBudgetText()
        Dim Budget As Long
        Dim Result As String
        
        Budget = InputBox("Enter project budget: ")
        
        Select Case Budget
            Case 0 To 5000: Result = "LOW"
            Case 5001 To 10000: Result = "MEDIUM"
            Case Is > 10000: Result = "HIGH"
        End Select
        
        MsgBox "You have a " & Result & " budget."
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    代码解释:

    该代码提示用户输入一个值,对其进行计算,然后输出结果。它评估预算变量并检查三种不同的情况(0-5000、5001-10000 和大于 10000)。一旦 VBA 找到 TRUE case 并执行该特定块的语句,就会退出 Select-Case 结构。

    ⚾️6.3 示例#3:错误处理

    您无法总是预测可能发生的每个错误。但如果可能的话,您应该捕获它们以确保您的程序不会在运行时崩溃。

    下面是 VBA 中错误处理的三种方法。每种方法都有自己的优点和缺点,因此选择适合您需求的方法非常重要。

    • On Error Resume Next 会忽略任何遇到的错误并防止代码停止。
    • On Error GoTo 0 停止导致错误的行上的代码,并显示描述错误的消息框。
    • On Error GoTo [Label] 允许您指定要对错误执行的操作。

    让我们看一个例子。我们将在之前的 ShowBudgetText Sub 中添加 On Error GoTo [Label] 错误处理方法。这将捕获任何类型的运行时错误,然后在警告消息框中显示该错误。

    Sub ShowBudgetText()
        Dim Budget As Long
        Dim Result As String
        
        On Error GoTo ErrorHandler
        
        Budget = InputBox("Enter project budget: ")
        
        Select Case Budget
            Case 0 To 5000: Result = "LOW"
            Case 5001 To 10000: Result = "MEDIUM"
            Case Is > 10000: Result = "HIGH"
        End Select
        
        MsgBox "You have a " & Result & " budget."
        
    ErrorHandler:
        MsgBox "Please enter a valid input.", vbExclamation
    
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    ⚽️7. 掌握 Excel VBA 编程的 5 个技巧

    学习任何新的编程语言一开始都会令人畏惧,但我们希望本文能为您学习 Excel VBA 提供一个良好的开端。

    在最后一部分中,我们提供了五个重要提示,将帮助您踏上掌握该语言的旅程:

    • 从学习编程基础知识开始。如果您是编程新手,首先了解什么是变量、VBA 中的各种数据类型、如何使用循环和条件等非常重要。
    • 利用在线资源。幸运的是,有大量资源可以帮助您学习基础知识。一旦您充分了解了编程基础知识,您将能够开始利用 Excel VBA 的更高级功能。
    • 熟悉常见的 Excel VBA 对象和方法。一些最常用的 Excel VBA 对象包括 Range、Worksheet 和 Workbook。
    • 尝试使用录制宏功能。这是感受 Excel VBA 的好方法,而无需自己编写任何代码。只需录制宏,然后编辑生成的代码即可根据您的需求进行自定义。
    • 别忘了玩得开心!Excel VBA 可以是一个强大的工具,但它也意味着令人愉快。所以放松并享受学习新东西的过程。

    ⚽️8. 总结

    本章介绍了Excel VBA的简单实用和案例。

    👬 交友小贴士:

    博主GithubGitee同名账号,Follow 一下就可以一起愉快的玩耍了,更多精彩文章请持续关注。


    专栏推荐


  • 相关阅读:
    springboot集成redis
    解决阿里云服务器使用ip访问Nginx失败的问题
    Java线程学习入门(三)
    【虚幻引擎UE】UE5 UMG布局和视觉设计(自适应篇)
    红日靶场五(vulnstack5)渗透分析
    zabbix监控Nginx
    MSF入门
    【二分查找】Leetcode 33. 搜索旋转排序数组【中等】
    Hafnium之S-EL0分区支持
    【C语言从入门到入土】第二章初识
  • 原文地址:https://blog.csdn.net/ASD13789356065/article/details/133656825